假设我想表示\q(或任何其他特定的"反斜杠转义字符").也就是说,我想匹配\q但不匹配\\q,因为后者是反斜杠转义反斜杠后跟a q.但是\\\q会匹配,因为它是一个反斜杠逃脱的反斜杠,然后反斜杠逃脱q.(嗯,它会匹配到\q最后,而不是\\在开头.)
我知道我需要一个消极的外观,但他们总是把头抬起来,特别是因为反斜杠本身必须在正则表达式中逃脱.
Leo*_*ans 17
更新:我新的和改进的Perl正则表达式,支持3个以上的反斜杠:
/(?<!\\) # Not preceded by a single backslash (?>\\\\)* # an even number of backslashes \\q # Followed by a \q /x;
或者如果你的正则表达式库不支持扩展语法.
/(?<!\\)(?>\\\\)*\\q/
输出我的测试程序:
q does not match \q does match \\q does not match \\\q does match \\\\q does not match \\\\\q does match
旧版本
/(?:(?<!\\)|(?<=\\\\))\\q/
| 归档时间: |
|
| 查看次数: |
12880 次 |
| 最近记录: |