匹配url params与正则表达式

时间:2017-03-29 22:10:01

标签: regex

我试图用正则表达式提取url params。

这是一个示例字符串:param1=val1&param2=val2&adv=val3&param3=val4&param4=val5

这是正在使用的正则表达式:

(\&)([^=]+)\=([^&]+)

我无法弄清楚如何匹配第一个参数。我将param1放在第2组中,将第3组中的val2放在param匹配的其余部分中。

https://regex101.com/r/Qzxyyo/1

我该怎么做?

编辑: 所以这似乎有效(意思是param1在组2中,val1在group3中)。但我不明白为什么它有效或者它是否可靠:

(\&|^)([^=]+)\=([^&]+)

1 个答案:

答案 0 :(得分:1)

(\&)([^=]+)\=([^&]+)

分解!

  1. \&寻找&字符
  2. [^=]+匹配字符,直至达到=
  3. \=匹配=字符
  4. [^&]+匹配字符直到&
  5. ()这些定义了群组!