Regulärer Ausdruck der Woche #1

Dies wird der erste Artikel in der Reihe Regulärer Ausdruck der Woche. Hier sollen exemplarisch nützliche reguläre Ausdrücke, in der Regel in PHP, vorgestellt werden. Bei diesem soll das Protokoll einer URL ausgelesen werden, also beispielsweise http(s) oder ftp:
@([^:]*)(://).*@

Im Detail:

([^:])*
Null oder viele Zeichen, die keinen Doppelpunkt enthalten. Das heißt, der Teil endet vor dem Doppelpunkt nach der Angabe des Protokolls. Durch die runden Klammern kann das Ergebnis beim Aufruf der preg_match Funktion gespeichert werden.

(://)
Der Doppelpunkt mit den beide Schrägstrichen. Die Schrägstriche müssen hier nicht maskiert werden. Weise und vorausschauend wurde nicht der Slash als Delimiter des Suchmusters gewählt, sondern @.

.*
Ein Haufen weiterer Zeichen, die in diesem Fall nicht weiter interessieren.

Hier ein kleine Beispielanwendung, die das Protokoll oder, falls keins vorhanden ist, eine Fehlermeldung ausgibt.

Ausgabe …

Übrigens findet sich in einem User Kommentar auf php.net der ultimative Ausdruck für eine URL, der wirklich auf jede passt. Ein wahres Monster. Der Link führt leider nicht direkt zum Kommentar, da keine Anker gesetzt sind. Suche nach „splattermania at freenet dot de“.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.