如何选择包含(仅/至少) 3 个逗号的行?

如何选择包含(仅/至少) 3 个逗号的行?

我有一个文本文档,其中包含一些带有 2 个逗号的行和一些带有 3 个逗号的行。

我想选择所有包含 3 个逗号的行。我该怎么做?

以下是一个示例文档:

basb,asbdausd,asduasbd
sdauabs,asbudasud,busadasbu,asduasub
asdbua,asbudsdbu,ubasdub

答案1

我认为这比其他答案更好,因为那个答案匹配了 4 个逗号的行。

当然这适用于任何字符,只需替换逗号......

如果您不想每行匹配少于或多于 3 个逗号,我使用这种模式:

^[^,\n]*((,[^,\n]*){3}$)

该模式的每个部分的解释如下(因为正则表达式对我来说并不明显:-)):

^

在reg表达式的开头,表示从行的开头

[^,\n]*

匹配任意数量的非换行符或逗号的字符

(,[^,\n]*)

匹配单个逗号,后跟零个或多个非逗号或换行符的字符

{3}$

这意味着在该行结束之前精确地找到前一个模式三次

((,[^,\n]*){3}$)

确保在此部分加上括号,以清楚地说明重复三次的内容(而不是第一个零个或多个不是逗号或换行符的字符)

很可能有一种更简单的方法 - 但我已经测试过并且我很确定这在当前版本的 notepad++ 中运行得很好。

答案2

使用Notepad++ 的正则表达式搜索。

例如,这里有一个 RegEx,它将匹配至少包含 3 个逗号的行:

.*,.*,.*,

这基本上意味着找到“任意数量的字符后跟一个逗号,后跟任意数量的字符后跟一个逗号,后跟任意数量的字符后跟一个逗号”。

在此处输入图片描述

相关内容