文字列内で最初に数字が出現するのを探しています。私は最初の数字、むしろ全体の最初の数字を探していません。したがって、たとえば、最初の数:1235alkj9342klja9034の最初の番号は、私はD \使用することを試みてきたが、私は複数を含めることを拡張する方法がわからないよ1235ルビー正規表現で完全な数字を見つける方法
ありながらw134fklj342は、134です数字(数字の長さを指定しないで)。
文字列内で最初に数字が出現するのを探しています。私は最初の数字、むしろ全体の最初の数字を探していません。したがって、たとえば、最初の数:1235alkj9342klja9034の最初の番号は、私はD \使用することを試みてきたが、私は複数を含めることを拡張する方法がわからないよ1235ルビー正規表現で完全な数字を見つける方法
ありながらw134fklj342は、134です数字(数字の長さを指定しないで)。
私が思うに、あなたがこの正規表現
\d+
を探している、「プラス」「1つ以上」を意味します。この正規表現は文字列内のすべての数字と一致するので、最初のものを選びます。
strings = ['w134fklj342', '1235alkj9342klja9034']
strings.each do |s|
puts s[/\d+/]
end
# >> 134
# >> 1235
正解ですが、もっと単純に:s [/ \ d + /] – pguardiario
@pguardiario:くそー! :) –
正規表現を理解する最も簡単な方法は、eachbitを考えることである1つの文字です。例:\d
または[1234567890]
または[0-9]
は1桁に一致します。 *
と+
*
0回以上+
はそれを1回以上と一致します文字と一致します:あなたは2つの基本的なオプションがあり、この1つの文字が拡大すること
Sergioのように、多くの数字に一致させるには\d+
を使うべきだと言った。一般的な正規表現のための
優れたチュートリアル:セルジオ・tulentsev @http://www.regular-expressions.info/tutorial.html
が正しいです。 Regexpが何を提供しているかについては、[Regexp docs](http://www.ruby-doc.org/core-1.9.3/Regexp.html)を参照してください。 –