我对正则表达式很陌生,并且一直在寻找方法来做到这一点,但没有成功。给定一个字符串,我想删除以“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(使用前将#替换为@)