文字列内で最初に出現する数字全体を探しています。最初の数字ではなく、最初の数字全体を探しています。たとえば、w134fklj342 の最初の数字は134 ですが、1235alkj9342klja9034 の最初の数字は1235 です。
\d を使用しようとしましたが、それを拡張して複数の数字を含める方法がわかりません (数字の長さを指定せずに)。
あなたはこの正規表現を探していると思います
\d+
「プラス」は「1つ以上」を意味します。この正規表現は文字列内のすべての数字に一致するため、最初の数字を選択してください。
strings = ['w134fklj342', '1235alkj9342klja9034']
strings.each do |s|
puts s[/\d+/]
end
# >> 134
# >> 1235
正規表現を理解する最も簡単な方法は、各ビットが 1 文字であると考えることです。例: \d
or [1234567890]
or[0-9]
は 1 桁に一致します。
この 1 文字を拡張するには、次の 2 つの基本的なオプションがあります*
。+
*
文字に0回以上一致します+
1回以上一致しますセルジオが言ったよう\d+
に、多くの数字を一致させるために使用する必要があります。
一般的な正規表現の優れたチュートリアル: http://www.regular-expressions.info/tutorial.html