如何检查测试RegEx模式是否与特定的URL域完全匹配?

时间:2011-11-25 13:25:06

标签: regex url

我正在寻找一种简洁的方式来编写正则表达式,以便将网址仅限与名为www.mysite.com的网址域匹配,只更改前缀和后缀。所以这个RegEx必须符合这些情况:

http://www.mysite.com/mycoolpage.html
http://www.mysite.com/mycoolpage.aspx?a_querystring=ABC123
http://www.mysite.com/mycoolpage.aspx?a_querystring=ABC123&another_querystring=ABC123
http://www.mysite.com/anothercoolpage.asp?a_querystring=ABC123
http://mysite.com/anothercoolpage.asp?a_querystring=ABC123

正则表达式必须处理任何文件:html, asp, aspx, etc。 此外,a_querystring可以是任何可能的值:xyz=123, a=Boston, q=a%20big%20value

是否有可读的方式来编写此正则表达式,以便开发人员可以轻松理解?

3 个答案:

答案 0 :(得分:1)

怎么样:

~http://(?:.*\.)?mysite\.com\S*~

<强>解释

~         : regex delimiter
http://   : literaly http://
(?:       : non capture group
.*\.      : any number of any char followed by dot
}?        : end of group optional
mysite    : literaly mysite
\.        : a dot
com       : literaly com
\S*       : any number of non white spaces
~         : regex delimiter

答案 1 :(得分:1)

这个正则表达式将起作用:

#http://(?:.*\.)*mysite\.com(?:/|$)*#

Example

答案 2 :(得分:0)

grep http://[^\.]*\.mysite\..* *

“任何文件”来自最终*。模式本身表示“以http://开头,然后是任意数量的字符不是文字。,然后是文字点,然后是”mysite“和文字点,然后是任何东西。 “