我有一个文本文档,其中包含一些带有 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 个逗号的行:
.*,.*,.*,
这基本上意味着找到“任意数量的字符后跟一个逗号,后跟任意数量的字符后跟一个逗号,后跟任意数量的字符后跟一个逗号”。