【问题标题】:Notepad++ RegEx search - Find n occurrences of a character anywhere in a lineNotepad++ 正则表达式搜索 - 在一行中的任意位置查找 n 个字符
【发布时间】:2017-02-17 01:01:06
【问题描述】:

鉴于文本文件中的这些行:

John|Doe |4 |1|1 |1 |0 |sometext||3251076 
Mary|Jane |5 |1|2 |1 |1 |||3251030 Henry|Smith |6 |1|1 |1 |0 |text||3254212 
Sue|Anderson.|1 |1|1 |0 |0 |||4080010

我需要找到超过 9 个竖线字符的行。

在 regexr.com 上使用 RegEx 构建工具我只能这样做:

^[|]{3,}$

在在线工具中找到 3 个连续管道的 2 个实例,但在 Notepad++ 中根本不起作用。这是我能得到的最接近的值。

至于在在线工具中构建正则表达式,我需要添加一些内容来指定在行中查找管道 anywhere,而不是管道的连续实例。

然而,将其转换为 Notepad++ 似乎是另一回事......

【问题讨论】:

  • 试试^(?:[^|\n\r]*\|){9,}[^|\n\r]*$

标签: regex notepad++


【解决方案1】:

这个有效:

^(?:[^|\r\n]*\|){9,}.*$

这匹配 0 个或多个 NON 管道后跟一个管道,9 次或更多次。

【讨论】:

  • 鉴于示例数据,此正则表达式在 Notepad++ 中不起作用。我刚刚测试了它,它报告找不到文本“^(?:[^|]*\|){9,}$”。
  • 叮叮叮!最后的编辑做到了! - 谢谢,@Toto! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
相关资源
最近更新 更多