我如何找到文本文件中不符合此模式的所有行:
xxx-xx-xxx.xxx
((不管每个部分的长度;'x'可以是任何字符)
我可以通过搜索正则表达式^(.*-.*-.*\.+.*)$
(使用EmEditor)来找到具有此模式的行,
但是我找不到找到否定情况的方法。
谢谢!
emeditor的documentation指出regular expression syntax is based on Perl regular expression syntax.
您可以使用负数前瞻(?!
,以确保您的模式不会出现在行中。
代替使用.*
,可以使用匹配除列出字符以外的任何字符的否定字符类[^-\r\n]*
。>
^(?!(?:[^-\r\n]*-){2}[^.\r\n]*\.).+$
说明
^
字符串的开头(?!
负前瞻,断言右边的不是(?:[^-\r\n]*-){2}
重复两次匹配除-或换行符以外的任何字符,然后进行数学-
[^.\r\n]*\.
匹配除.
以外的任何字符,然后匹配.
)
关闭前瞻.+
匹配除换行符1+次以外的任何字符$
字符串结尾