Reguläre Ausdrücke

Aus TV-Browser Wiki
Wechseln zu: Navigation⧼comma-separator⧽Suche

Was sind reguläre Ausdrücke

Reguläre Ausdrücke sind sehr vielseitige Wildcards. Mit ".*ter\b.*" können Sie z.B. Sendungen finden, die Wörter enthalten, die auf "ter" enden. Weitere Informationen zu "regulären Ausdrücken" bekommen Sie in diesem Wikipedia-Artikel.

Eine Erläuterung der im TV-Browser verwendeten Syntax findet man in der Java-Dokumentation.

Beispiele

Ausdruck Ergebnis
star *trek.* Findet alles mit star am Anfang, gefolgt von beliebig vielen Leerzeichen, danach ein trek und dann beliebige Zeichen.

Z.B.: Star Trek, Star   Treker, Star Trek - Deep Space Nine

.*ter\b.* Beliebige Zeichen, ter, danach ein Trennzeichen und danach wieder beliebige Zeichen.

Z.B.: Heiter und Sonnig, Unter der Sonne, Winter

.*(James Bond|007).* Beliebige Zeichen, gefolgt von entweder James Bond ODER 007, und dann wieder beliebige Zeichen.
(.*(James *Bond|\D007).*)|007.* Erste Klammer: Beliebige Zeichen, gefolgt von entweder (James, gefolgt von beliebig vielen Leerzeichen UND Bond) ODER kein numerisches Zeichen und 007 (damit zB. 2007 nicht gefunden wird), und dann wieder beliebige Zeichen.

Zweites ODER (|007.*): 007, gefolgt von beliebigen Zeichen

(?i).*star.*trek[^:].* Findet alle Star Trek Filme und ignoriert die Serien. (?i) = ignoriere Groß- Kleinschreibung. Das Fragezeichen verhindert eine Gruppierung der Klammern. .*star.*trek : Irgendwelche Zeichen, gefolgt von star, gefolgt von irgendwelchen Zeichen, gefolgt von trek. [^:], gefolgt von keinem Zeichen aus der Liste, wo [a-z] die Liste a,b,c,d... angibt und [^a-z] a,b,c,d ... ausschliesst, gefolgt von irgendwelchen Zeichen.

Findet "Star Trek IV", aber nicht "Star Trek: irgendetwas"

(?i).*star.*trek[:].* Findet alle Star Trek Titel, die Star Trek: enthalten

Generelles

Reguläre Ausdrücke (auch regular expressions, kurz Regex) bieten die Möglichkeit, Texte durch Muster zu beschreiben. Am besten versteht man es in etwa so: Du hast einen Text, den du finden möchtest. Mit regulären Ausdrücken kannst du die Schablone dafür erzeugen, die beim Auflegen auf den Text das Ergebnis zeigt.

Reguläre Ausdrücke werden vielfältig verwendet. Man kann mit ihnen URLs wie "http://www.example.com", Emails etc. überprüfen. Aber genauso kann man sie verwenden, um Filme, Serien etc ausfindig zu machen. So könnte man sich zum Beispiel anzeigen lassen, welche Sendung eine URL als Info anzeigt.

\b((https?|telnet|gopher|file|wais|ftp):[\w/\#~:.?+=&%@!-]+?)(?=[.:?\-]*(?:[^\w/\#~:.?+=%@!-]|$))

So sagt

Ausdruck Ergebnis
\b Beginne an der Wortgrenze
(https?|telnet|gopher|file|wais|ftp) Diese müssen enthalten sein, wobei https? bedeutet: http ist Pflicht, aber das "s" muss einmal oder keinmal vorhanden sein (durch ein ? am "s").
: Der Doppelpunkt muss danach vorhanden sein.
[\w/\#~:.?+=&%@!-]+? Ein oder mehrere gültige Zeichen aus der Liste. In [] eckigen Klammern markiert dies als Liste. +? sagt aber: so wenige wie möglich.
?=[.:?\-]* Ausschau halten nach möglichen Interpunktionszeichen,
(?: aber nicht gruppieren (keine Treffer festhalten),
[^\w/\#~:.?+=%@!-]|$ möglichen ungültigen Zeichen oder Stringende (Wortende).