2016-05-10 3 views
1

Vor der Veröffentlichung möchten wir die CMS-Artikel scannen, um zu wissen, ob URLs vorhanden sind, die "dev", "qa" oder "ua" enthalten.Finden Sie, ob "qa" oder "ua" in der URL existiert

fand ich diese Regex von What is a good regular expression to match a URL?

(https: // (?:?.?. Www | (www)) [.^\ S] + [^ \ s] {2, } | www. [^ \ s] + [^ \ s] {2,})

ich möchte diese aktualisieren, so dass es nur die URLs Spiele, die "dev", "qa" oder "haben. ua "drin.

heißt

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 

sollten übereinstimmen und nicht

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

wäre sehr hilfreich, wenn Sie den Ausdruck hier

aktualisieren

http://regexr.com/3dd09

und dann teilen

Antwort

2

Es scheint, dass Sie nur URLs übereinstimmen möchten, die diese 3 Zeichenfolgen enthalten.

können Sie

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

Die positive Vorschau verwenden (?=\S*(?:ua|dev|qa)) den gefundenen String zwingen, entweder ua, dev oder qa in ihm zu haben.

Siehe the regex demo

ersetze ich auch [^\s] mit \S da diese gleichwertig sind.

+0

Er möchte "http://regexrqa.com/foo.html?q=bar" anpassen, was "qa" hat, aber nicht als ganzes Wort –

+0

Also, dann entferne '\ b' - so wie ich schrieb - die Regexr-Demo ist verwirrend. –

+0

Ihr Ausdruck passt nicht zu "http://regexrqa.com/foo.html?q=bar" oder "http://regexrdev.com/foo.html?q=bar" oder "http: // regexrua. com/foo.html? q = bar " – Robin

Verwandte Themen