带负参数的正则表达式 AND 运算符

regex AND operator with negative arguments

我正在尝试匹配不以 .! 结尾且不以 ."!" 结尾的行,所以它应该匹配两者

但不应该匹配:

我尝试使用正向和负向前瞻,尝试按照 Regex AND operator 中的建议将它们用作 AND,但我无法使其工作,我也不确定它是否适用于前瞻。

确保 bye 不会被 .! 继承,并且对负字符 class 进行正向预测,然后使最后一个 " 可选 ? 量词:

\bsay "bye(?=[^.!])"?

您可以使用

^(?!.*[.!]"?$).*$

Regex Demo

注意:- 这也匹配空行,因为我们使用 * 这意味着匹配任何零次或多次,如果你想避免匹配空行,你可以使用 + 量词,这意味着匹配一次或多次

只需使用负面回顾。 这完全符合您的要求:^.*+(?<![.!]"?)$


^ - 行首
.*+ - 任意数量的字符,不放弃回溯
(?<! + ) - 前面没有
[.!] - 点或感叹号
"? - 可选双引号
$ - 行尾