用于匹配每行中第一次出现逗号的正则表达式

时间:2013-07-18 23:09:21

标签: regex notepad++

正则表达式只用于匹配逗号的第一个实例,除了逗号之外什么都没有?

我尝试了类似,{1}的内容,我认为它与非贪婪的限定符有关,例如,(.*?),但我没有成功。

我正在使用Notepad ++尝试将代码从另一种语言转换为JavaScript。我想把第一个逗号变成冒号。它看起来像这样:

'TJ', 'Tajikistan' ,
'TZ', 'Tanzania' ,
'TH', 'Thailand' ,
'TL', 'Timor-Leste' ,
'TG', 'Togo' ,
'TK', 'Tokelau' ,
'TO', 'Tongo' ,
'TT', 'Trinidad and Tobago' ,

找到:/,/
替换为::
0次更换

Screnshot of Notepad++

1 个答案:

答案 0 :(得分:15)

您可以做的是,您可以使用冒号以及逗号之后的所有内容自动替换逗号及其后的所有内容,而不是仅使用冒号替换第一个逗号。 。 (例如,在'TZ', 'Tanzania' ,中,此方法会将, 'Tanzania' ,替换为: 'Tanzania' ,。)之后,由于该行的其余部分已经被替换,因此Notepad ++不会重新检查它看它是否包含逗号。

你这样做的方法是使用捕获组,它允许替换字符串包含正则表达式匹配的部分内容。

具体来说,你会替换它(“查找内容”):

,(.*)

表示“逗号(,),加上零个或多个字符(.*),并捕获后者(())”,使用此字符(“替换为”):

:$1

表示“冒号(:),加上第一个捕获组($1)捕获的内容”。