IAd*_*ter 83 regex regex-negation
例如,我有正则表达式(ma|(t){1}).它匹配ma和t不匹配bla.
我想否定正则表达式,因此必须匹配bla,而不是ma和t,加入的东西此正则表达式.我知道我可以写bla,但实际的正则表达式更复杂.
pol*_*nts 91
使用否定的外观: (?!pattern)
正面外观可用于断言模式匹配.否定的外观恰恰相反:它用于断言模式不匹配.一些风味支持断言; 一些人对外观等有所限制.
这些尝试是为玩具问题提出正则表达式解决方案作为练习; 如果你正在尝试学习各种使用外观的方法(嵌套它们,使用它们来捕获等),它们应该具有教育意义:
Ala*_*ore 50
假设您只想完全禁止与正则表达式匹配的字符串(即,mmbla可以,但mm不是),这就是您想要的:
^(?!(?:m{2}|t)$).*$
Run Code Online (Sandbox Code Playgroud)
(?!(?:m{2}|t)$)是一个负面的先行 ; 它说"从当前位置开始,接下来的几个字符不是, mm或者t后面是字符串的结尾." 开头的锚点(^)确保在字符串的开头应用前瞻.如果成功,.*则继续并消耗字符串.
仅供参考,如果您使用的是Java的matches()方法,那么您并不需要它^和最终版本$,但它们不会造成任何伤害.但是$,前瞻性内部是必需的.
| 归档时间: |
|
| 查看次数: |
143255 次 |
| 最近记录: |