0

文字列内で最初に出現する数字全体を探しています。最初の数字ではなく、最初の数字全体を探しています。たとえば、w134fklj342 の最初の数字134 ですが、1235alkj9342klja9034 の最初の数字1235 です。

\d を使用しようとしましたが、それを拡張して複数の数字を含める方法がわかりません (数字の長さを指定せずに)。

4

2 に答える 2

4

あなたはこの正規表現を探していると思います

\d+

「プラス」は「1つ以上」を意味します。この正規表現は文字列内のすべての数字に一致するため、最初の数字を選択してください。

strings = ['w134fklj342', '1235alkj9342klja9034']

strings.each do |s|
  puts s[/\d+/]
end
# >> 134
# >> 1235

デモ: http://rubular.com/r/YE8kPE2SyW

于 2012-04-17T00:08:15.820 に答える
1

正規表現を理解する最も簡単な方法は、各ビットが 1 文字であると考えることです。例: \dor [1234567890]or[0-9]は 1 桁に一致します。

この 1 文字を拡張するには、次の 2 つの基本的なオプションがあります*+

  • *文字に0回以上一致します
  • +1回以上一致します

セルジオが言ったよう\d+に、多くの数字を一致させるために使用する必要があります。

一般的な正規表現の優れたチュートリアル: http://www.regular-expressions.info/tutorial.html

于 2012-04-17T09:32:13.657 に答える