【问题标题】:Regular Expression: convert a list of name and value pairs to query string正则表达式:将名称和值对列表转换为查询字符串
【发布时间】:2017-05-02 20:47:00
【问题描述】:

我正在使用 Lucee/Tomcat 和 Tuckey plugin 重写 URL。为了简化问题:我需要一个将冒号分隔的列表转换为常规 url 查询字符串格式的正则表达式。

比如转换这个

one1:aaa:two2:bbb:three3:ccc 

进入这个:

one1=aaa&two2=bbb&three3=ccc 

列表长度可能会有所不同。参数名称及其值是字母数字。

理想情况下,我想用= 替换每个奇数出现的分隔符:,并用& 替换偶数出现。

【问题讨论】:

  • 澄清一下,您的意思是替换列表分隔符: 的奇数和偶数出现吗? IE。 one1(odd)aaa(even)two2(odd)bbb(even)three3(odd)ccc
  • 是的,这就是我的意思,就像我展示的示例一样。

标签: regex url-rewriting coldfusion tuckey-urlrewrite-filter lucee


【解决方案1】:

我会看这样的东西。

(\w+):(\w+):? 并替换为 $1=$2& 然后去掉最后的 ?在第二个命令中。

查看我的作品 https://regex101.com/r/7nh1Mb/1

【讨论】:

  • 感谢您的解决方案,它看起来很简单,但我试过更复杂。 regex 似乎有一个条件函数,但它不适用于替换以消除最后一个&符号(&)。示例:(?(?=regex)then|else) 如果 $1 和 $2 的长度大于 0,则在其末尾添加一个“&”。
猜你喜欢
  • 2020-07-17
  • 1970-01-01
  • 2019-06-23
  • 2018-08-14
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2012-01-28
相关资源
最近更新 更多