我正在尋找字符串中第一個整數的數字。我不是在尋找第一個數字,而是整個第一個數字。因此,例如,在第一個數字:w134fklj342是134,而在1235alkj9342klja9034的第一個數字是1235如何用ruby正則表達式找到整個完整數字
我試圖使用\ d,但我不知道該如何展開,包括多個數字(不指定數字的長度)。
我正在尋找字符串中第一個整數的數字。我不是在尋找第一個數字,而是整個第一個數字。因此,例如,在第一個數字:w134fklj342是134,而在1235alkj9342klja9034的第一個數字是1235如何用ruby正則表達式找到整個完整數字
我試圖使用\ d,但我不知道該如何展開,包括多個數字(不指定數字的長度)。
我想,你正在尋找這個表達式
\d+
「加」是指「一個或多個」。這個正則表達式將匹配一個字符串中的所有數字,所以選擇第一個。
strings = ['w134fklj342', '1235alkj9342klja9034']
strings.each do |s|
puts s[/\d+/]
end
# >> 134
# >> 1235
正確,但更簡單只是:s [/ \ d + /] – pguardiario 2012-04-17 08:20:26
@pguardiario:該死! :) – 2012-04-17 09:16:38
瞭解正則表達式的最簡單的方法是考慮eachbit的是一個字符;例如:\d
或[1234567890]
或[0-9]
將匹配一個數字。
爲了擴大這一特性,你有2點基本的選擇:*
和+
*
將匹配字符0次或多次+
將匹配它一次或多次像塞爾吉奧說,你應該使用\d+
來匹配很多數字。一般的正則表達式
@塞爾吉奧 - tulentsev是正確的。但是您應該閱讀[Regexp文檔](http://www.ruby-doc.org/core-1.9.3/Regexp.html)以瞭解有關正則表達式提供的更多信息。 – 2012-04-17 01:32:59