HTTP查询参数正则表达式

时间:2019-07-16 09:03:36

标签: regex

对于专业人士来说可能是次要的...

我想检测一串查询参数,例如:

var1=val1&var2=val2&...

我尝试过:

((.*)?(#[\w\-]+)?$&*)*

这很好,除了它也可以匹配

var1=val1&

我不要。

请告知。

谢谢!


编辑:

也尝试过:

(.*)=(.*)&*

这是一个好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

尝试以下操作,

(?:&?[^=&]*=[^=&]*)+

您可以从here及其说明中对其进行测试。


  

也尝试过:

(.*)=(.*)&*
     

这是一个好的解决方案吗?

不。像var1=val1&var2=val2&...sdsad3423--**909这样的输入字符串呢?

答案 1 :(得分:1)

尝试一下:

^([^=]+=[^&]*&)*([^=]+=[^&]*)$

在这里,以下匹配一对键值对。

[^=]+=[^&]*

因此,零个或多个以&结尾的键值对:

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

而且,末尾有一对键值对,后面没有&

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

Regex101