Notepad ++ regex用于查找超过n个管道符的行

时间:2017-08-18 17:47:27

标签: regex csv character notepad++

再一次我在Notepad ++中遇到了一个正则表达式的问题,因为我对它不是很了解。
我有一个.csv文件,但我需要找到所有带有n(比如4个)或更多管道字符的行。
我拥有的字符串示例:

6454345|User1-2ds3|62562012032|9c1fe63ccd3ab234892beaf71f022be2e06b6cd1
3305611|User2-42g563dgsdbf|22023001345|c36dedfa12634e33ca8bc0ef4703c92b73d9c433
8749412|User3-9|xgs|f|98906504456|411b0fdf54fe29745897288c6ad699f7be30f389
5151540|User4-jy|n|12202310|6a54c608289f4aedfab63ca640bcd5d174fd8592

我需要找到这些字符串,它们有4个或更多个管道字符:

8749412|User3-9|xgs|f|98906504456|411b0fdf54fe29745897288c6ad699f7be30f389 
5151540|User4-jy|n|12202310|6a54c608289f4aedfab63ca640bcd5d174fd8592 

我在这里做了一些搜索,但找不到我想要的内容,到目前为止我使用了这些问题中提供的答案,除此之外我没有发现任何类似的内容:
Find Lines with N occurrences of a char
Regular expression to match text that contains n or more of specified character
我用管道字符替换了请求的字符,但这对我不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用以下两个表达式中的任何一个来匹配包含4个管道的行:

^(.*?\|){4}

^([^|\r\n]*\|){4}

请注意,您需要 .匹配换行符选项OFF才能使第一个模式生效。

模式详情

  • ^ - 行首
  • (.*?\|){4} - 除了换行符之外的任何字符出现4次,尽可能少,直到第一个|然后是|字符
  • [^|\r\n] - 匹配除|,CR和LF符号之外的任何字符。

enter image description here