Reguläre Ausdrücke
Reguläre Ausdrücke
Ich hatte mit dem Stichwort "Maya|Mayas" und der Kennzeichnung als Regulärer Ausdruck in allen Feldern nach Sendungen über die Maya-Kultur suchen wollen. Nachdem heute die Sendung in 3sat "Schätze der Welt" um 20.15 dadurch nicht als Lieblingssendung und auch sonst keine Sendung markiert wurde, habe ich mit dem Booleschen Stichwort "Maya OR Mayas" nochmals gesucht und gleich 25 Fundstellen bekommen. Was kann ich bei dem Regulären Ausdruck falsch gemacht haben?
Re: Reguläre Ausdrücke
Wie wäre es mit ".*Maya(s?).*" ? (ohne Anführungszeichen)
Sonst kann ich noch folgende Lektüre empfehlen:
http://de.wikipedia.org/wiki/RegExp
Reguläre Ausdrücke
mfg
v6ph1
Sonst kann ich noch folgende Lektüre empfehlen:
http://de.wikipedia.org/wiki/RegExp
Reguläre Ausdrücke
mfg
v6ph1
-
- Site Admin
- Beiträge: 3353
- Registriert: 09 Sep 2006, 22:45
Re: Reguläre Ausdrücke
Ja, den Fehler, keine Platzhalter am Anfang oder Ende einzufügen, wenn der Ausdruck nicht den gesamten String matchen soll, den mache ich beim Programmieren auch immer wieder...
Re: Reguläre Ausdrücke
Danke schön. Jetzt liefern die beiden Möglichkeiten .*Maya(s?) .* und .*Maya .*|.*Mayas .* auch alle Fundstellen wie die Boolesche Suche, wobei natürlich die erste von beiden die elegantere ist. Es ist schön, immer noch sogar ganz Neues dazulernen zu können.
- Don Bartolo
- Senior Member
- Beiträge: 187
- Registriert: 01 Nov 2008, 18:56
- Wohnort: Berlin
Re: Reguläre Ausdrücke
Ich habe mal eine Frage zu den Regulären Ausdrücken, mit denen ich mich nicht sonderlich auskenne:
Ich möchte mir eine Lieblingssendung basteln, die mir nur die "Terra X"-Folgen aus den 80ern und 90ern anzeigen soll.
Ist das so richtig?:
Mir wird nichts angezeigt, das könnte aber auch daran liegen, dass derzeit keine Sendungen diese Kriterien erfüllen. Oder ist da ein Fehler im String von mir?
Ich möchte mir eine Lieblingssendung basteln, die mir nur die "Terra X"-Folgen aus den 80ern und 90ern anzeigen soll.
Ist das so richtig?:
Code: Alles auswählen
Terra *X.* (198.?|199.?)
TV-Browser 4.2.2.96 RC1 - Java 11.0.10 OpenJDK 64-Bit - Windows 10 10.0 amd64
_
"Versuche nicht, ein großer Mann zu sein, sei einfach ein Mann!" (Zefram Cochrane)
_
"Versuche nicht, ein großer Mann zu sein, sei einfach ein Mann!" (Zefram Cochrane)
Re: Reguläre Ausdrücke
Die RegExp sucht nur immer nur in einer Teilkomponente, nicht in der Kombination aller Sendungsinformationen.
Die Lösung für dein Problem sollte die Suche nach Terra X in Kombination mit einem Filter für das Erscheinungsjahr sein.
Anregungen dazu findest du im Wiki: Filterregel für Spielfilme
-- v6ph1
PS: Aktuell finden sich keine Terra X-Sendungen, bei denen das Erscheinungsjahr im Titel steht.
Die Lösung für dein Problem sollte die Suche nach Terra X in Kombination mit einem Filter für das Erscheinungsjahr sein.
Anregungen dazu findest du im Wiki: Filterregel für Spielfilme
-- v6ph1
PS: Aktuell finden sich keine Terra X-Sendungen, bei denen das Erscheinungsjahr im Titel steht.
Re: Reguläre Ausdrücke
Das stimmt nicht, alle ausgewählten Felder werden zu einem Suchstring zusammengefügt und dann darüber die Suche mit Regulärem Ausdruck ausgeführt. Problem dabei ist, nach Informationen die gar nicht vorhanden sind, kann man auch nicht suchen außerdem muss man die Reihenfolge der Felder beachten.
Wäre die Information vorhanden würde der angegebene Ausdruck aber nur dann etwas finden, wenn Terra X ganz am Anfang des zusammengefügten Suchstrings stünde und 198? oder 199? ganz am Ende. Das dürfte praktisch niemals der Fall sein, daher muss man in solchen Fällen angeben, dass das auch in der Mitte stehen kann. Außerdem darf kein Leerzeichen zwischen .* und ( stehen, sonst müsste das auch tatsächlich vor 198? in den Daten stehen. Für die Jahreszahl sollte man dann noch festlegen, dass nach 198 oder 199 nur genau eine Zahl stehen darf:
Das ließe sich dann verkürzen zu:
Wäre die Information vorhanden würde der angegebene Ausdruck aber nur dann etwas finden, wenn Terra X ganz am Anfang des zusammengefügten Suchstrings stünde und 198? oder 199? ganz am Ende. Das dürfte praktisch niemals der Fall sein, daher muss man in solchen Fällen angeben, dass das auch in der Mitte stehen kann. Außerdem darf kein Leerzeichen zwischen .* und ( stehen, sonst müsste das auch tatsächlich vor 198? in den Daten stehen. Für die Jahreszahl sollte man dann noch festlegen, dass nach 198 oder 199 nur genau eine Zahl stehen darf:
Code: Alles auswählen
.*Terra *X.*(198[0-9]{1}|199[0-9]{1}).*
Code: Alles auswählen
.*Terra *X.*(19[8-9]{1}[0-9]{1}).*
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser