我想制作一个ruby正则表达式,它匹配恰好包含x整数的字符串。我希望字符串也能包含其他单词
的例子:如果x = 2,以下内容应匹配:有3辆车时速超过45英里
,其中第一个整数为3,第二个整数为45。
我会写
str = "There were 3 cars going over 45 miles per hour"
str.scan(/d+/).size == 2
#=> true
或
str.gsub(/d+/).count == 2
#=> true
后者的优点是str.gsub(/d+)
返回一个枚举数,而str.scan(/d+/)
创建一个临时数组。
请参阅String#gsub的形式,它接受参数但不接受块,以及Enumerable#count。
您可以使用通用的正则表达式模式:
^D*(?:d+D+){2}$
您可以将{2}
替换为字符串中您期望的任意多个数字。下面是一个工作演示。