使用$ 1时,正则表达式replace删除第一个和最后一个字符

时间:2019-06-27 06:08:35

标签: regex replace

我有这样的字符串:

&breakUp=Mumbai;city,Puma;brand&

其中,孟买;城市和彪马;品牌是过滤器(可以说),以逗号(,)分隔。我必须添加更多的过滤器,例如Delhi; State。

我正在使用以下正则表达式查找上述字符串:

&breakUp=.([\w;,]*).&

,并使用以下正则表达式替换它:

&breakUp=$1,Delhi;State&

它可以正确找到该字符串,但是在替换该字符串时,将删除第一个和最后一个字符并给出以下结果:

&breakUp=umbai;city,Puma;bran,Delhi;State&

该如何解决? 另外,如果我没有过滤器,则不需要第一个逗号。喜欢

&breakUp=&

应该成为

&breakUp=Delhi;State&

如何做到?

2 个答案:

答案 0 :(得分:2)

您的问题似乎是领先和落后的时期,它们与任何字符都匹配。

尝试使用此正则表达式:

&breakUp=([\w;,]*)&

答案 1 :(得分:1)

我的猜测是您的表达很好,其中还有两个.,我们将删除它们:

&breakUp=([\w;,]*)&

如果您感兴趣,请在此demo中对表达式进行说明。

要绕过&breakUp=&,我们可以应用以下表达式:

&breakUp=([^&]+)&

Demo