如何使用ruby正则表达式查找完整的完整数字

时间:2012-04-17 00:03:23

标签: ruby regex

我希望在字符串中找到第一个完整的数字。我不是在寻找第一个数字,而是整个第一个数字。因此,例如, w134fklj342 中的第一个数字是134,而 1235alkj9342klja9034 中的第一个数字是1235。

我试图使用\ d但我不确定如何扩展它以包含多个数字(不指定数字的长度)。

2 个答案:

答案 0 :(得分:3)

我想,你正在寻找这个正则表达式

\d+

“加”表示“一个或多个”。此正则表达式将匹配字符串中的所有数字,因此请先选择一个。

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

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

演示:http://rubular.com/r/YE8kPE2SyW

答案 1 :(得分:0)

理解正则表达式的最简单方法是将每个位置视为一个字符;例如:\d[1234567890][0-9]将匹配一位数。

要展开这一个字符,您有两个基本选项:*+

  • *将匹配字符0次或更多次
  • +将匹配一次或多次

就像塞尔吉奥所说,你应该使用\d+来匹配许多数字。

一般的正则表达式的优秀教程:http://www.regular-expressions.info/tutorial.html