2011-10-11 58 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作爲協議。