Reguläre Ausdrücke
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.: |
.*ter\b.* | Beliebige Zeichen, ter , danach ein Trennzeichen und danach wieder beliebige Zeichen.
Z.B.: |
.*(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.*): |
(?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älltig 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). |