我希望在字符串中找到第一个完整的数字。我不是在寻找第一个数字,而是整个第一个数字。因此,例如, w134fklj342 中的第一个数字是134,而 1235alkj9342klja9034 中的第一个数字是1235。
我试图使用\ d但我不确定如何扩展它以包含多个数字(不指定数字的长度)。
答案 0 :(得分:3)
我想,你正在寻找这个正则表达式
\d+
“加”表示“一个或多个”。此正则表达式将匹配字符串中的所有数字,因此请先选择一个。
strings = ['w134fklj342', '1235alkj9342klja9034']
strings.each do |s|
puts s[/\d+/]
end
# >> 134
# >> 1235
答案 1 :(得分:0)
理解正则表达式的最简单方法是将每个位置视为一个字符;例如:\d
或[1234567890]
或[0-9]
将匹配一位数。
要展开这一个字符,您有两个基本选项:*
和+
*
将匹配字符0次或更多次+
将匹配一次或多次就像塞尔吉奥所说,你应该使用\d+
来匹配许多数字。
一般的正则表达式的优秀教程:http://www.regular-expressions.info/tutorial.html