0

我怎样才能找到文本文件中所有不(!)符合这种模式的行:

xxx-xx-xxx.xxx

(不管每个部分的长度;“x”可以是任何字符)

我可以通过搜索正则表达式^(.*-.*-.*\.+.*)$(使用 EmEditor)找到具有这种模式的行,

但我找不到找到负面案例的方法。

谢谢!

4

2 回答 2

0

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 次以上
  • $字符串结束

正则表达式演示

于 2020-01-29T18:36:39.290 回答
0

我是 EmEditor 的开发者。如果你使用 EmEditor,你可以进入(.*-.*-.*\.+.*)Filter工具栏,打开Use Regular ExpressionsMatch Whole StringNegative按钮。在 EmEditor 中使用过滤器工具栏

于 2020-05-06T18:17:50.667 回答