文本-查找没有特定表达式的所有行

问题描述 投票:0回答:1

我如何找到文本文件中不符合此模式的所有行:

xxx-xx-xxx.xxx

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

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

但是我找不到找到否定情况的方法。

谢谢!

regex text regular-language emeditor
1个回答
0
投票

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+次以外的任何字符
  • $字符串结尾
  • Regex demo

    © www.soinside.com 2019 - 2024. All rights reserved.