7

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

我尝试过类似的事情,{1},我认为这与这样的非贪婪限定符有关,(.*?),但我没有成功。

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

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

查找内容:/,/
替换为::
0 次被替换

Notepad++ 截图

4

1 回答 1

17

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

这样做的方法是使用捕获组,它可以让替换字符串合并正则表达式匹配的部分内容。

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

,(.*)

意思是“一个逗号 ( ,),加上零个或多个字符 ( .*),并捕获后者 ( ())”,用这个(“替换为”):

:$1

意思是“冒号 ( :),加上第一个捕获组 ( $1) 捕获的任何内容”。

于 2013-07-18T23:22:59.350 回答