我有这个正则表达式(使用javascript),用于检测域中的任何URL,但没有一个包含“ mysite”(又称为“ example”,因为stackoverflow过滤器)的URL。
(?<protocol>\w+s?:\/\/)?(?<subdomain>\w+\.)(?<domain>(?!example)(\w+))(?<tls>\.\w{2,4})(?<querystring>\/.*)?\S*
示例:
No detected
https://www.example.org/hello?
http://www.example.org/hello
https://blog.example.org/hello?
example.org
www.example.org
Detected
www.example.org
www.www.example.org
example.org
答案 0 :(得分:0)
正如与您讨论的那样,有几件事需要注意。在下面提到其中的一些
*
,因为您想允许它零次或多次。.*
必须替换为\S*
,以避免与URL中的任何空格匹配通过这些更改,您已更新且有效的正则表达式将变为
\b(?<protocol>\w+s?:\/\/)?(?<subdomain>\w+\.)*(?<domain>(?!mysite)(\w+))(?<tls>\.\w{2,4})(?<querystring>\/\S*)?\b