我正在使用Ruby 2.4我如何编写一个匹配一系列数字的正则表达式,加号然后是后面的任何序列,只要序列不包含另一个数字?例如,这将匹配每个我的规则
23+abcdef
就像这个
1111111+ __++
但这不会
2+3
这也不是
2+ L43
我尝试了这个但是没有成功......
/\d+[[:space:]]*(\+|plus).*([^\d]|$)/i.match(mystr)
答案 0 :(得分:3)
#pragma STDC FP_CONTRACT OFF
如果至少有一个不是数字的字符要跟随r = /\A # match beginning of string
\d+ # match one or more digits
\+ # match plus sign
\D* # match zero or more characters other than a digit
\z # match end of string
/x # free-spacing regex definition mode
"23+abcdef".match?(r)
#=> true
"1111111+ __++".match?(r)
#=> true
"23 abcdef".match?(r)
#=> false
"2+3".match?(r)
#=> false
"2+ L43".match?(r)
#=> false
,请将正则表达式中的'+'
更改为\D*
。