1

当我使用 pattren

"(see|see also) [\w\d]+"

关于文本

see page 
see also page

但输出匹配是

see page 
see also

如果我互换了,请参见

"(see also|see) [\w\d]+"

输出是

see page 
see also page

我以为两者都是一样的。我可以知道为什么会这样吗?

4

1 回答 1

6

删除交替并离开see [\w\d]+将匹配字符串“see also page”,因为它满足see also. 正则表达式使用交替的方式(至少在这种情况下)是它会尝试将每个选项按顺序与模式的其余部分匹配,并在成功完成后立即停止,或者在匹配时返回替代项失败。当您反转交替时,它会尝试与see alsofirst 匹配,但这将失败并显示“see page”。

把它写成这样会更有意义see( also)? [\w\d]+

于 2013-04-18T06:01:14.783 回答