【发布时间】:2011-10-11 18:09:56
【问题描述】:
谁能给我正则表达式来验证带有 2 个参数的查询字符串的 URL
http://www.example.com?pid=3&sid=4
我想验证输入是否与上面的 URL 和确切的参数匹配,我如何为此编写正则表达式
提前致谢!
【问题讨论】:
-
只比较两个字符串?为什么需要正则表达式来进行 exact 匹配?
标签: regex query-string
谁能给我正则表达式来验证带有 2 个参数的查询字符串的 URL
http://www.example.com?pid=3&sid=4
我想验证输入是否与上面的 URL 和确切的参数匹配,我如何为此编写正则表达式
提前致谢!
【问题讨论】:
标签: regex query-string
^(http://)?(www\.)?[0-9A-z]+\.com\?pid=(?<pid>\d+)&sid=(?<sid>\d+)$
【讨论】:
http://www.abc.com/?pid=3&sid=4,则不会匹配,也不会匹配https。不确定这些是否是要求。
^(https?://)?(www\.)?[0-9A-z]+\.com/?\?pid=(?<pid>\d+)&sid=(?<sid>\d+)$
^(https?://)?(www\.)?[0-9A-z]+\.com/[0-9A-z]+/[0-9A-z]+\.aspx\?pid=(?<pid>\d+)&sid=(?<sid>\d+)$ 将匹配 abc.com/test/default.aspx?pid=1&sid=2
^https?://(www\.)?((?!-)[a-z0-9-]+(?<!-)\.)+\w{2,6}/\w+/(default\.aspx)?\?pid=\d+&sid=\d+$
将匹配:
http://www.domain.tld/directory/?pid=123&sid=123
http://www.domain.tld/directory/default.aspx?pid=123&sid=123
http://www.sub-domain.domain.tld/directory/?pid=123&sid=123
http://www.sub-domain.domain.tld/directory/default.aspx?pid=123&sid=123
以及没有www. 的网址和使用https 作为协议的网址。
【讨论】:
假设 pid 和 sid 是静态的。
pid=(.*)&sid=(.*)
【讨论】: