正则表达式匹配多个字符串

时间:2015-04-20 11:49:58

标签: regex

需要帮助来分隔此字符串

value-filter-29[]=Test+1,Test+2,Test+2&+3&value-filter-43[]=Last+30+Days&value-filter-11[]=Testing+number

进入这个

  • value-filter-29[]=Test+1,Test+2,Test+2&+3
  • value-filter-43[]=Last+30+Days
  • value-filter-11[]=Testing+number

已经尝试使用正则表达式 (?:)(value-filter-\d+\[\]=.+?)(&|$)

并且对于第一场比赛,只有value-filter-29[]=Test+1,Test+2,Test+2没有&3

有没有办法用正则表达式来实现这个目标?

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

\&(?=value)

它会在&之后的value分开。你可以稍后调整这个前瞻。查看当前的输出,您可能需要添加-filter-\&(?=value-filter-)

请参阅demo

输出:

value-filter-29[]=Test+1,Test+2,Test+2&+3
value-filter-43[]=Last+30+Days
value-filter-11[]=Testing+number

答案 1 :(得分:1)

你需要使用积极的先行断言。

value-filter-\d+\[\]=.+?(?=&value-filter-|$)

DEMO