Regex 正则表达式替换在使用$1时删除第一个和最后一个字符

Regex 正则表达式替换在使用$1时删除第一个和最后一个字符,regex,replace,Regex,Replace,我有这样的字符串: &breakUp=Mumbai;city,Puma;brand& 孟买在哪里;城市与美洲狮;品牌是由逗号(,)分隔的过滤器。我必须增加更多的过滤器,比如德里;国家 我使用以下正则表达式查找上述字符串: &breakUp=.([\w;,]*).& 并使用以下正则表达式替换它: &breakUp=$1,Delhi;State& 它正确地查找字符串,但替换字符串时会删除第一个和最后一个字符,并给出以下结果: &break

我有这样的字符串:

&breakUp=Mumbai;city,Puma;brand&
孟买在哪里;城市与美洲狮;品牌是由逗号(,)分隔的过滤器。我必须增加更多的过滤器,比如德里;国家

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

&breakUp=.([\w;,]*).&
并使用以下正则表达式替换它:

&breakUp=$1,Delhi;State&
它正确地查找字符串,但替换字符串时会删除第一个和最后一个字符,并给出以下结果:

&breakUp=umbai;city,Puma;bran,Delhi;State&
如何解决这个问题? 另外,如果我没有过滤器,我不想要第一个逗号。像

&breakUp=&
应该成为

&breakUp=Delhi;State&

怎么做?

我猜您的表达式很好,其中有两个额外的
,我们将删除它们:

&breakUp=([\w;,]*)&
如果您可能感兴趣的话,这里将对表达式进行解释

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

&breakUp=([^&]+)&

您的问题似乎是前导和尾随句点,它们与任何字符都匹配

尝试使用此正则表达式:

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

也许你可以解释为什么你把这些点放在那里;“你希望他们能完成什么?”艾玛只是又一个疑问。如果我在替换之前和之后没有过滤器,我不想要第一个逗号。Like&breakUp=&应该成为&breakUp=德里;状态&如何做?