为什么这个正则表达式不匹配字符串中的所有b
?
'abbbbbbb'.match(/b*/)
#=> #<MatchData "">
然而这样做:
'abbbbbbb'.match(/b+/)
#=> #<MatchData "bbbbbbb">
*
的定义是:“星号表示前面的元素中有零个或多个”。+
的定义是:“加号表示前面有一个或多个元素”。两个运营商之间的唯一区别是他们所做的匹配数量。它们都应匹配7 b
s。
答案 0 :(得分:4)
这不是一个错误,你只是自己回答了你的问题。
The definition of * is: "The asterisk indicates there is zero or more of the preceding element"
如果根本没有b字符,/b*/
匹配。