Ruby正则表达式捕获带有数字的任何字符串

时间:2014-03-16 02:21:16

标签: ruby regex

我在Ruby中寻找一个正则表达式来捕获一个包含任何数字的句子。

例如,我需要捕获以下所有内容:

  • " 5种不同的方法"
  • " 2 x 2肯定是4"
  • "有15种不同的东西"
  • "尝试进入10"

我只想捕捉一个数字在其中的句子,但在数字之前或之后没有别的。我不想包括以下内容:

  • " 20亿美元"
  • " 5x效果"

它必须只是句子开头,中间或末尾的一个或多个数字的序列。

感谢。

2 个答案:

答案 0 :(得分:1)

您可能需要以下内容:

/^.*(?<!\S)\d+(?!\S).*$/

这将匹配一个数字和&#34;环顾四周&#34;对于非空间。

答案 1 :(得分:0)

(s =~ /(^|\s)\d+(\s|$)/) ? s : nil

将返回字符串s,如果它包含至少一个非负整数,即:

  • 整个字符串,
  • 在字符串的开头跟着一个空格字符
  • 最后是以空格字符开头的字符串,或
  • 前面和后面都有一个空白字符。