替换(请求参数)字符串中的所有匹配项

时间:2014-01-22 10:15:52

标签: regex query-string

我在http体中有一个请求字符串,如

param1=123&param2=asdf&param3=dsjf&param4=1234134&param5=29348

现在,我想用1111替换param4的值(不确定字符串中是否存在param4;也可能在开头和结尾处。)

我尝试以下操作,但这不起作用:将(.*)&(param4=[0-9]*)&(.*)替换为&$1param4=1111&$2

因为上面的结果字符串是param1=123&param2=asdf&param3=dsjf&amount=2&amount=1234134

我错过了什么?

3 个答案:

答案 0 :(得分:1)

搜索:

([?&]param4)=[^&]*

并替换为:

$1=1111

其中$1是对捕获的组#1的反向引用。

答案 1 :(得分:1)

您可以使用以下内容:

搜索(&?param4)=([^&]+)并替换为\1=1111$1=1111,具体取决于您使用的语言。

Demo

答案 2 :(得分:1)

找到这个:

(?<=[?&])param4=[^&]*

然后替换为:

param4=1111

描述

Regular expression visualization

演示

http://regex101.com/r/nX3oW6