以下正则表达式语句之间的不同结果背后的原因是什么:
"abbcccddddeeee"[/z*/] # => ""
Run Code Online (Sandbox Code Playgroud)
而这些回归nil:
"some matching content"[/missing/] # => nil
"start end"[/\Aend/] # => nil
Run Code Online (Sandbox Code Playgroud)
正则表达式/z*/匹配0个或更多z字符,因此它还匹配字符串开头的空字符串.考虑一下:
"abbcccddddeeee" =~ /z*/
# => 0
Run Code Online (Sandbox Code Playgroud)
因此String#[]返回匹配的空字符串.
在第二个例子中,表达/missing/和/\Aend/不匹配任何如此nil返回.
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |