我对正则表达式来说很陌生,并一直在四处寻找,但没有成功。给定一个字符串,我想删除任何以" abc"开头的模式,以" abc"结尾,并且不包含" abc"在中间。如果我做
'abc.*(abc).*abc'
它将匹配以" abc"开头的任何模式,以" abc"结尾,并且确实包含" abc"在中间。我该如何做相反的事情。我试试
'abc.*^(abc).*abc'
但它不会起作用。
答案 0 :(得分:6)
答案 1 :(得分:4)
尝试否定部分模式的语法不正确。
此外,字符类之外的^
在字符串的开头处断言位置。您需要使用Negative Lookahead断言,并确保anchor整个模式。
^abc(?:(?!abc).)*abc$