我使用的是Ruby 2.4。我想说匹配一个包含3到4个连续数字的字符串。但我的括号语法不起作用
2.4.0 :034 > data = "1234"
=> "1234"
2.4.0 :035 > data =~ /\d{3, 4}/
=> nil
说出这个的直接方式是什么?
答案 0 :(得分:3)
删除limiting quantifier中的空格:
data =~ /\d{3,4}/
如果您想匹配仅包含3到4位数字的整个字符串,请使用
data =~ /\A\d{3,4}\z/
<强>详情:
\A
- 字符串开头\d{3,4}
- 3到4位\z
- 字符串结束。请参阅Rubular demo。
答案 1 :(得分:0)
您的正则表达式被解释为
\d{3,[ ]4}
这就是为什么它不起作用。
删除空格
你的正则表达式试图匹配这个
\d # digit
{ # literal
3 # literal
, # literal
[ ] # class
4 # literal
} # literal