Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
星号如何影响Ruby中的表达式?_Ruby_Regex_Asterisk - Fatal编程技术网

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

星号如何影响Ruby中的表达式?,ruby,regex,asterisk,Ruby,Regex,Asterisk,我很困惑为什么星号会对Ruby中的正则表达式结果产生影响?示例代码如下: 2.3.0 :001 > "abbcccddddeeeee"[/z*/] => "" 2.3.0 :002 > "abbcccddddeeeee"[/z/] => nil 为什么带*的第一个返回空字符串,而另一个返回nil 谢谢 *是一个表示“0或更多”的量词 您的第一个代码段与z的0个实例相匹配。您的第二个代码片段与任何内容都不匹配。Kleene星表示“零或更多”。在第一种情况下,字符串

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

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


谢谢

*
是一个表示“0或更多”的量词

您的第一个代码段与
z
的0个实例相匹配。您的第二个代码片段与任何内容都不匹配。

Kleene星表示“零或更多”。在第一种情况下,字符串中有0
z
s,这意味着存在“零个或多个
z
s”的匹配(实际上甚至无限多个匹配)

在第二种情况下,搜索字符串中不存在的单个
z