Ruby Regex*与字符序列不匹配

Ruby Regex*与字符序列不匹配,ruby,regex,Ruby,Regex,为什么这个regexp不匹配字符串中的所有b 'abbbbbbb'.match(/b*/) #=> #<MatchData ""> 鉴于此: 'abbbbbbb'.match(/b+/) #=> #<MatchData "bbbbbbb"> *的定义是:星号表示前面的元素为零或多个。 +的定义是:加号表示前面有一个或多个元素。 这两个运算符之间的唯一区别是它们进行的匹配数。它们都应该匹配7个B。这不是一个bug,你只是自己回答了你的问题 *的定义是:星号表

为什么这个regexp不匹配字符串中的所有b

'abbbbbbb'.match(/b*/)
#=> #<MatchData "">
鉴于此:

'abbbbbbb'.match(/b+/)
#=> #<MatchData "bbbbbbb">
*的定义是:星号表示前面的元素为零或多个。 +的定义是:加号表示前面有一个或多个元素。
这两个运算符之间的唯一区别是它们进行的匹配数。它们都应该匹配7个B。

这不是一个bug,你只是自己回答了你的问题

*的定义是:星号表示前面的元素为零或多个


如果没有b字符,那么/b*/匹配。

使用rubular.com它有一个regex应用程序,您可以将regex表达式测试到其中。尝试将b放在*b*之后意味着0个或多个b。不会有两场比赛吗?无,bbbb?'abbbbbb'[/b*/]=>与字符串开头的空字符串匹配bbbbb'[/b*/]=>bbbbbbb。另请注意“abbbbbb”。扫描/b*/=>[,bbbbbbbbb,].@CarySwoveland,Arup:Whopps,Cary是对的。我错了。对不起。@sawa是的,我的也走错了方向。:-我错过的是一个好机会;啊哈!你说得对,谢谢。我一直把它读为“至少0”和“至少1”!好吧,即使这样也不对。在这种情况下,我不知道我在想什么:D