我试图使Regexp匹配一个多于或等于两个'1's 的表达式.
这是我到现在所写的 -
puts "Match." if /(1){1,5}/ =~ test_string
Run Code Online (Sandbox Code Playgroud)
这正确匹配'1'大于或等于2的字符串,但如果出现次数'1'大于5 ,它仍然匹配.
如何更正此Regexp以仅匹配出现1到5次的字符串1?
可能有更好的版本,但这似乎可以解决问题:
/^([^1]*1){1,5}[^1]*$/
Run Code Online (Sandbox Code Playgroud)
细分:
^ - 字符串开头[^1]*1 - 零个或多个非1个字符1 - '1'.([^1]*1){1,5} - 这种模式发生在一到五次之间.[^1]* - 零个或多个非1个字符$ - 字符串结束