2011-10-11 60 views
0

谁能给我的正则表达式来验证查询字符串的URL有两个参数正则表达式表达帮助 - 查询字符串

http://www.example.com?pid=3&sid=4 

我想验证如果输入有确切参数上面的URL匹配,怎么办我写这个正则表达式

在此先感谢!

+0

只比较两个字符串?为什么你需要一个正则表达式来做一个_exact_匹配? –

回答

1
^(http://)?(www\.)?[0-9A-z]+\.com\?pid=(?<pid>\d+)&sid=(?<sid>\d+)$ 
+0

如果它有一个尾部的斜线,即'http://www.abc.com/?pid = 3&sid = 4',它也不会与'https'匹配。不确定这些是否是要求。 – Jeff

+0

@Jeff for https and trailing slash:'^(https?://)?(www \。)?[0-9A-z] + \。com /?\?pid =(? \ d +)&sid = (? \ d +)$' – fardjad

+0

谢谢你的回应,我的实际requiremnet是http://www.abc.com/test/default.aspx?tid=1&sid=2 - 这里的参数值是确切的数字 - 所以我改变了上面的正则表达式为“^(http://)?(www \。)?[0-9A-z] + \ [0-9A-z] + \。com \?tid = 1 +&sid = 2 + $“ - 但它没有工作,你能告诉我更正... – equator

0

假设PID & SID是静态的。

pid=(.*)&sid=(.*) 
+1

这匹配了很多不应该匹配的东西。 – fardjad

1
^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 

以及URL,而不www.和网址以https作为协议。