在 Notepad++ 中,是否可以搜索包含过多或过少特定分隔符实例的行?

在 Notepad++ 中,是否可以搜索包含过多或过少特定分隔符实例的行?

我们的一个业务合作伙伴经常向我们发送格式错误的 CSV 文件。该文件包含 50,000 行,其中数百行的列分隔符过多。

在 Notepad++ 中,有没有办法找到特定分隔符的数量大于或小于指定数字的所有行,例如count( | ) <> 16

答案1

  • Ctrl+F
  • 选择“标记”标签
  • 找什么:^[^|]*(?!(?:\|[^|\r\n]*){16}$)(?:\|[^|\r\n]*)*$
  • 检查环绕
  • 检查正则表达式
  • 取消选中. matches newline
  • Mark all

解释:

^                   # beginning of line
  [^|]*             # 0 or more any character not pipe
  (?!               # start negative lookahead, make sure we haven't after:
    (?:             # start non capture group
      \|            # a pipe
      [^|\r\n]*     # 0 or more non pipe, non linebreak
    ){16}           # end goup, must appear 16 times
    $               # end of line
  )                 # end lookahead
  (?:               # start non capture group
    \|              # a pipe
    [^|\r\n]*       # 0 or more non pipe, non linebreak
  )*                # end goup, may appear 0 or more times
$                   # ed of line

屏幕截图:

为了简单起见,我测试了分隔符的数量<> 3

在此处输入图片描述

相关内容