首先,这是使用preg.
字符串我正在尝试匹配:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa b c d xp
Run Code Online (Sandbox Code Playgroud)
我的正则表达式和他们的比赛:
(\S*\s*){0,1}\S*p = "d xp"
(\S*\s*){0,2}\S*p = "c d xp"
(\S*\s*){0,3}\S*p = NO MATCH (expecting "b c d xp"
(\S*\s*){0,4}\S*p = entire string
(\S*\s*){0,5}\S*p = entire string
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我删除单个"a",它就有效.另外,(\S*\s*){0,3}\Sp或(\S*\s){0,3}\S*p两者兼而有之.
有人可以解释为什么第三种情况导致没有匹配而不是"bcd xp"?
TIA!
好问题.
我尝试了另一种也有Perl RE语法Ruby的语言,它返回了预期的字符串:
$ irb
>> s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa b c d xp'
=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa b c d xp"
>> s[/(\S*\s*){0,3}\S*p/]
=> "b c d xp"
Run Code Online (Sandbox Code Playgroud)
这让我觉得你找到了一个翻译错误......
但我们现在知道了
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |