我怎样才能找到文本文件中所有不(!)符合这种模式的行:
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 中使用过滤器工具栏