我需要一个正则表达式,它将匹配包含子字符串“ abc”而不是子字符串“ abcdef”或“ abcghi”的字符串。我能找到的最佳解决方案是:

/^.*abc(?!def|ghi).*$/i


但是,此wronlgy与以下字符串匹配:

xxxabcxabcdefxx


我的正则表达式被“ abcx”字符串的幻化所迷惑,女巫包含“ abc”,后面没有禁止的后缀。
我尝试使用“ +”和“?”修饰符无济于事。

我想我可以通过使用不带通配符的正则表达式来解决此问题,并将匹配的字符串与完整的字符串进行比较,但是我发现该解决方案似乎是..修补的。

最佳答案

为什么不搜索不包含字符串abcdef和abcghi的字符串:

.*(abcdef|abcghi).*


并排除那些?

09-20 22:30