2009-04-15 15 views
0

Kann jemand eine Regex schreiben, die nur Kleinbuchstaben URLs, die a-z-Buchstaben, 0-9 Zahlen und - haben können, http: // (https ist nicht erforderlich), www. und hat default.aspx nicht?Kleinbuchstaben regex url

Dies ist eine URL, die übereinstimmen müssen regex: (. Withour www)
http://www.somedomain.net/news/148/some-text-to-act-as-news-title.aspx

oder

http://subdomain.somedomain.net/news/148/some-text-to-act-as-news-title.aspx

Regex muss jede URL nicht übereinstimmen, die Großbuchstaben und default.aspx

haben

Ich habe einige grundlegende Regex, die einige der URLs übereinstimmen.

Vielen Dank.

EDITED


Dies ist mein Versuch: [a-z0-9] {1,} - *

Nur passt einzelne Wörter, Wörter mit - und Zahlen

EDITED WIEDER


Dank Leute an euch alle.

+0

Können Sie zeigen, was Sie versuchen, sich so weit das Problem zu lösen habe gemacht? – pmarflee

+0

Es wäre gut, wenn Sie _your_ regexes auch gepostet haben. – Seb

+0

Entschuldigung. Ich habe meine Frage bearbeitet. – lopkiju

Antwort

2

Eine Lösung mit Vorgriffs Behauptung:

^http://[a-z0-9-.]+(?:(?!/default\.aspx)/[a-z0-9-.]+)*$ 
2
^http://((?!default\.aspx)[a-z0-9\-\./])*$ 
0

sollten Sie die URLs ausschließen, die Uppercase und default.aspx mit Ihrer systemeigenen Sprache haben. aber wenn du alles willst, ABER die Kappen machen das.

[a-z/- 0-9]* 
+0

Warum die native Sprache verwenden? Regex ist perfekt für genau solche Muster, die passen ... – Lucero

+0

Die allgemeine Regel für Regex ist, wenn Sie eine Suchfunktion in der Muttersprache haben, die etwas in der Regel schneller als Regex tun kann. Wenn Sie nur sagen wollen: "Überspringe diese Zeile, wenn sie ein UC-Zeichen hat", wird das wahrscheinlich in den NL schneller sein. – Keng

2
^http://[a-z0-9.-]+\.[a-z0-9]+(/(?!.*default\.aspx)[a-z0-9./-]+)?$ 
+1

Sie haben den gleichen Tippfehler wie ich gemacht, Sie müssen den Punkt in default.aspx entkommen und ich würde vorschlagen, es in der [] auch zu umgehen;) – Lucero