是否可以在正则表达式中使用与NOT操作等效的内容,以便仅在字符串不包含给定位置中的某个字符时匹配该字符串?
我看到元字符说^可能意味着"否定一个类",但我很难找到它的使用示例.并且该特定字符对于字符串的开头是不明确的,因此它也有点令人困惑.
是的,他们被称为前瞻性否定断言,例如some_re(?!not_on_my_watch)
你也可能对此有兴趣:
(?<!not_even_before_my_watch)[^\d\sa-z]您可能还想检查断言的相对pcre/php文档.
看看你是否发现其他有趣的东西.
请注意:否定断言可能 会与您的意愿相匹配,在字符串中的位置,您没有想到.做好准备:
某个字符(例如x)不在特定位置(例如位置 5)的正则表达式是:
^.{4}[^x]
Run Code Online (Sandbox Code Playgroud)
某个字符(例如x)不在任何地方的正则表达式是:
^(?!.*x)
Run Code Online (Sandbox Code Playgroud)
'foo[^b]ar'
Run Code Online (Sandbox Code Playgroud)
将匹配任何东西开始foo和结束ar但是foobar.所以它否定了[^b]类,它也可以是一个字符列表(并且使用范围被接受为:[^b-d]跳过b,c,d).
| 归档时间: |
|
| 查看次数: |
7687 次 |
| 最近记录: |