我正在尝试匹配不以任一结尾的行.
或!
不以任."
一结尾的行,!"
因此它应该同时匹配两者
say "bye"
say "bye
但不应该匹配:
say "bye.
say "bye!
say "bye."
say "bye!"
我尝试使用正负前瞻,尝试按照Regex AND operator中的建议将它们用作 AND ,但我无法使其工作,我也不确定前瞻是否可行。
我正在尝试匹配不以任一结尾的行.
或!
不以任."
一结尾的行,!"
因此它应该同时匹配两者
say "bye"
say "bye
但不应该匹配:
say "bye.
say "bye!
say "bye."
say "bye!"
我尝试使用正负前瞻,尝试按照Regex AND operator中的建议将它们用作 AND ,但我无法使其工作,我也不确定前瞻是否可行。
您可以使用
^(?!.*[.!]"?$).*$
注意:-这也与我们使用的空行匹配*
,这意味着匹配任何零个或多个时间,如果您想避免空行匹配,您可以使用+
量词,这意味着匹配一个或多个时间
只需使用负面的回顾。这完全符合您的要求:^.*+(?<![.!]"?)$
^
- 行首
.*+
- 任意数量的字符,不放弃回溯
(?<!
+ )
- 前面没有
[.!]
- 点或感叹号
"?
- 可选双引号
$
- 行尾
确保bye
没有通过负字符类的正向预读来成功.
,!
然后使用量词使最后一个"
可选:?
\bsay "bye(?=[^.!])"?