我正在寻找一种简洁的方式来编写正则表达式,以便将网址仅限与名为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
是否有可读的方式来编写此正则表达式,以便开发人员可以轻松理解?
答案 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)
答案 2 :(得分:0)
grep http://[^\.]*\.mysite\..* *
“任何文件”来自最终*
。模式本身表示“以http://
开头,然后是任意数量的字符不是文字。,然后是文字点,然后是”mysite“和文字点,然后是任何东西。 “