星号如何影响Ruby中的表达式?

时间:2016-03-07 00:48:56

标签: ruby regex asterisk

我很困惑为什么星号对Ruby中的正则表达式结果有影响?示例代码如下:

console.log(config.hello); // "World!"

为什么第一个2.3.0 :001 > "abbcccddddeeeee"[/z*/] => "" 2.3.0 :002 > "abbcccddddeeeee"[/z/] => nil 返回空字符串,而另一个返回*

谢谢!

2 个答案:

答案 0 :(得分:1)

*是一个量词,表示" 0或更多"。

您的第一个代码段匹配z的0个实例。你的第二个片段并不匹配。

答案 1 :(得分:0)

Kleene明星的意思是"零或更多"。在第一种情况下,字符串中有0 z s,这意味着"零或更多z s"匹配(实际上甚至是无限多次匹配)。

在第二种情况下,您在字符串中搜索单个z的出现位置。