找到网址中是否存在“qa”或“ua”

时间:2016-05-10 13:16:44

标签: regex regex-negation

在发布之前,我们要扫描CMS文章,以了解我们是否有任何包含“dev”,“qa”或“ua”的网址。

我从What is a good regular expression to match a URL?

找到了这个正则表达式
  

(HTTPS://(?:??!。WWW |(WWW))。^ \ S] + [^ \ s]的{2,} | WWW [^ \ S] + [^ \ s]的{2,})

我想更新它,以便它只匹配其中包含“dev”,“qa”或“ua”的网址。

http://regexrdev.com/foo.html?q=bar
https://dev.mediatemple.net

http://regexrqa.com/foo.html?q=bar
http://qa.mediatemple.net

and 

http://regexrua.com/foo.html?q=bar
https://ua.mediatemple.net

应该匹配而不是

www.demo.com    
http://foo.co.uk/
http://regexr.com/foo.html?q=bar
https://mediatemple.net

如果您可以在此处更新表达式,那将非常有用

  

http://regexr.com/3dd09

然后分享

1 个答案:

答案 0 :(得分:2)

您似乎只想匹配包含这3个字符串的网址。

您可以使用

(?=\S*(?:ua|dev|qa))(?:https?:\/\/(?:www\.|(?!www))[^\s.]+\.\S{2,}|www\.\S+\.\S{2,})

正面预测(?=\S*(?:ua|dev|qa))会强制匹配的字符串中包含uadevqa

请参阅the regex demo

我还将[^\s]替换为\S,因为它们是等效的。