我怎样才能找到文本文件中所有不(!)符合这种模式的行:
xxx-xx-xxx.xxx
(不管每个部分的长度;“x”可以是任何字符)
我可以通过搜索正则表达式^(.*-.*-.*\.+.*)$
(使用 EmEditor)找到具有这种模式的行,
但我找不到找到负面案例的方法。
谢谢!
我怎样才能找到文本文件中所有不(!)符合这种模式的行:
xxx-xx-xxx.xxx
(不管每个部分的长度;“x”可以是任何字符)
我可以通过搜索正则表达式^(.*-.*-.*\.+.*)$
(使用 EmEditor)找到具有这种模式的行,
但我找不到找到负面案例的方法。
谢谢!
emeditor的文件指出regular expression syntax is based on Perl regular expression syntax.
您可以使用负前瞻(?!
来确保您的模式不会出现在行中。
除了使用之外.*
,您还可以使用[^-\r\n]*
匹配除所列字符之外的任何字符的否定字符类。
^(?!(?:[^-\r\n]*-){2}[^.\r\n]*\.).+$
解释
^
字符串的开始(?!
负前瞻,断言右边的不是
(?:[^-\r\n]*-){2}
重复 2 次匹配除 - 或换行符之外的任何字符,然后是数学-
[^.\r\n]*\.
匹配除 之外的任何字符.
,然后匹配 a.
)
关闭前瞻.+
匹配除换行符以外的任何字符 1 次以上$
字符串结束我是 EmEditor 的开发者。如果你使用 EmEditor,你可以进入(.*-.*-.*\.+.*)
Filter工具栏,打开Use Regular Expressions、Match Whole String和Negative按钮。在 EmEditor 中使用过滤器工具栏