【问题标题】:Replace all occurences in a (request param) string替换(请求参数)字符串中的所有匹配项
【发布时间】:2014-01-22 10:15:52
【问题描述】:

我在 http 正文中有一个请求字符串,例如

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

现在,我想用 1111 替换 param4 的值(不能保证 WHERE param4 出现在字符串中;也可以在开头和结尾)。

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

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

我错过了什么?

【问题讨论】:

    标签: regex query-string


    【解决方案1】:

    搜索:

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

    替换为:

    $1=1111
    

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

    【讨论】:

      【解决方案2】:

      你可以使用这样的东西:

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

      Demo

      【讨论】:

        【解决方案3】:

        找到这个:

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

        然后替换为:

        param4=1111
        

        说明

        演示

        http://regex101.com/r/nX3oW6

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-29
          • 2020-06-23
          • 2016-09-26
          • 2020-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多