具有三个通配符的正则表达式字符串,仅替换为第二个和第三个

时间:2014-04-22 12:50:03

标签: html regex sublimetext

我的代码中有多个<li>,其中超过3,000个(不要问!)。

它们都采用以下格式:

<li>Name, Job, Company</li>

<li>Job, Company</li>

我需要找到包含Name的那些(即带有两个逗号,的那些,而不只是一个),并删除名称。我希望使用Sublime Text的Regex find + replace功能。

现在,我可以使用以下正则表达式选择包含两个逗号的所有行:

<li>.*,.*,.*</li>

但是,我现在如何用第二个和第三个.*取代那些,丢弃第一个?

2 个答案:

答案 0 :(得分:2)

找到这个:

<li>.*,(.*),(.*)</li>

替换为:

<li>\1,\2</li>

<li>$1,$2</li>

无论你的编辑支持什么

答案 1 :(得分:1)

sed -r 's/[^,]*,([^,]*,[^,]*)/\1/g'

.*因为它会与逗号匹配。