正则表达式 - 匹配不包含字符串的模式

2024-05-14

我对正则表达式很陌生,并且一直在寻找方法来做到这一点,但没有成功。给定一个字符串,我想删除以“abc”开头、以“abc”结尾且中间不包含“abc”的任何模式。如果我做

'abc.*(abc).*abc'

它将匹配以“b”开头、以“abc”结尾并且中间包含“abc”的任何模式。我该如何做相反的事情。我尝试

'abc.*^(abc).*abc'

但这行不通。


您尝试否定部分模式的语法不正确。

Also, ^在字符类之外断言位置位于字符串的开头。你需要使用一个负前瞻 http://www.rexegg.com/regex-lookarounds.html断言并确保anchor http://www.rexegg.com/regex-anchors.html整个图案。

^abc(?:(?!abc).)*abc$

现场演示 https://regex101.com/r/eP2tR1/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式 - 匹配不包含字符串的模式 的相关文章

随机推荐