Abo mit Regex - Hilfe gesucht
-
@jkrieger sagte in Abo mit Regex - Hilfe gesucht:
Immer noch nicht fertig, aber was funktionieren sollte
#:.*S02.*(?<!\(Audiodeskription\))
Dieser Ausdruck ist ok, weitere “verbotene Enden” kann man einfach genauso dahinter schreiben.
Zum Testen nehme ich Maja statt S02.
Das war das Problem, es passte aufs Thema. Mit "Maja " klappt alles.
-
DANKE!!!
Das von dir
#:.S02.(?<!\(Audiodeskription\))Und das
#:.S02.(?<!Audio.*)funktioniert.
Aber warum?
Ich verstehe nicht warum das Zeichen \ und die Klammern brauche…(Ist es normal, dass man den Backslash im regulären Ausdruck hier zweimal eingeben muss damit er einmal angezeigt wird? Warum?
-
@selbermachen
Die Klammern gehören zum Suchtext “(Audiodeskription)” und haben mit regex ansonsten nichts zu tun.
Bitte beim Schreiben von Text die RegEx als Code formatieren, da ansonsten wichtige Zeichen wie das Sternchen oder ein Backslash entfernt werden. -
@menchensued sagte in Abo mit Regex - Hilfe gesucht:
Bitte beim Schreiben von Text die RegEx als Code formatieren, da ansonsten wichtige Zeichen wie das Sternchen oder ein Backslash entfernt werden.
Man kann das natürlich auch händisch machen, aber dann leidet man schnell unter LTS (Leaning Toothpick Syndrome).
-
@menchensued sagte in Abo mit Regex - Hilfe gesucht:
@selbermachen
Die Klammern gehören zum Suchtext “(Audiodeskription)” und haben mit regex ansonsten nichts zu tun.
Bitte beim Schreiben von Text die RegEx als Code formatieren, da ansonsten wichtige Zeichen wie das Sternchen oder ein Backslash entfernt werden.OK, ich habe nun folgendes verstanden:
Der Suchtext ist “(Audiodeskription)” mit Klammern.
Und damit die Klammer “gefunden” wird, braucht man jeweils davor das Escape-Zeichen “\”.Aber ich verstehe nicht, warum es nicht funktioniert, wenn man die beiden Klammern und die dazugehörigen Escape-Zeichen weglässt. Es sollte doch egal sein ob man nach “(Audiodeskription)” oder “Audiodeskription” sucht.
Es funktioniert ja auch mit dem folgenden Ausdruck:
#:.*S02.*(?<!Audio.*)
Hat jemand Lust mir das zu erklären?
Danke und Gruß
Thomas -
@selbermachen sagte in Abo mit Regex - Hilfe gesucht:
Aber ich verstehe nicht, warum es nicht funktioniert, wenn man die beiden Klammern und die dazugehörigen Escape-Zeichen weglässt. Es sollte doch egal sein ob man nach “(Audiodeskription)” oder “Audiodeskription” sucht.
Es funktioniert ja auch mit dem folgenden Ausdruck:
#:.*S02.*(?<!Audio.*)
Hat jemand Lust mir das zu erklären?
Die regulären Ausdrücke sind “verankert”, sie müssen vom Anfang bis zum Ende des Zielstrings reichen. Das .*S02.* erledigt das gut. Der Rest bedeutet, das direkt vor dem Ende des Strings nicht z.B. (Audiodeskription) steht. Das passt. Ebenso passt Audio.*, auch wenn das falsche Treffer geben kann. Aber Audiodeskription steht eben nicht direkt vor dem Ende des Strings, weil eben noch die Klammer dahinter steht. Mein regulärer Ausdruck ist nur deshalb so kompliziert, weil es eben nicht auftauchen darf.
-
@jkrieger sagte in Abo mit Regex - Hilfe gesucht:
Die regulären Ausdrücke sind “verankert”, sie müssen vom Anfang bis zum Ende des Zielstrings reichen.
Das ist aber nur in MV so. Wo anders muss man dazu erst mit ^ am Anfang und $ am Ende dafür sorgen, wenn man es braucht.
-
@mvsfsvm sagte in Abo mit Regex - Hilfe gesucht:
@jkrieger sagte in Abo mit Regex - Hilfe gesucht:
Die regulären Ausdrücke sind “verankert”, sie müssen vom Anfang bis zum Ende des Zielstrings reichen.
Das ist aber nur in MV so. Wo anders muss man dazu erst mit ^ am Anfang und $ am Ende dafür sorgen, wenn man es braucht.
Naja, die von MV verwendeten Java-Funktionen machen es eben so.
“Nur in MV” ist also etwas übertrieben, aber ich bin auch die andere Voreinstellung gewöhnt. -
Ah, jetzt kommen wir der Sache mit der Verankerung schon näher! Danke für diese Info! Ich hatte nämlich gerade folgendes gelesen:
Will man dies sofort am Anfang testen, so muss man ein ^ als erstes Zeichen im regulären Ausdruck setzen…
Analog kann man einen Mustervergleich am Ende eines Strings durchführen mit einem $ am Ende des regulären Ausdrucks…Und das trifft ja hier scheinbar nicht zu.
Und woher soll man das wissen?
Und wo steht das?Weiß das jemand?
Danach werde ich es vermutlich gut sein lassen…
:face_with_stuck-out_tongue_winking_eye: -
Ok, verstanden, es kommt wohl auf die Programmiersprache an…
Danke euch, schöne Zeit noch!
Gruß
Thomas -
@selbermachen
Und weil das mit dem Negieren schnell kompliziert werden kann, erschlägt man diese Audiodeskpritionen und anderes schon von Anfang an mit einer Regex in der Blacklist.
zb.#:.*Audiodeskription.*
oder#:.*Audiodes(c|k)ription.*
, falls ihnen die Denglish Zügel durchgehen.Sonst stehst man bei dem nächsten Abo schnell vor dem gleichen Problem und fragt sich wie man das 6 Monate vorher nochmal gelöst hat…
-
@vitusson
Verstehe, aber ich wollte etwas lernen.
Vielleicht kann ich das neue Wissen nun z.B. beim suchen nach Strings in Notepad++ nutzen oder… -
@selbermachen sagte in Abo mit Regex - Hilfe gesucht:
Und woher soll man das wissen?
Und wo steht das?In der Anleitung.
-
@vitusson sagte in Abo mit Regex - Hilfe gesucht:
@selbermachen
Und weil das mit dem Negieren schnell kompliziert werden kann, erschlägt man diese Audiodeskpritionen und anderes schon von Anfang an mit einer Regex in der Blacklist.Meine Rede …
zb.
#:.*Audiodeskription.*
oder#:.*Audiodes(c|k)ription.*
, falls ihnen die Denglish Zügel durchgehen.Wobei zumindest für den ersten Fall die Regex überflüssig ist, und im zweiten Fall kann man auch zwei Text-Einträge nehmen.
Unwahrscheinlich, dass das einen Effizienz-Unterschied macht. Hauptsache, man versteht, was man gemacht hat. -
Na ja, um das zu verstehen, muss man schon irgendwie vom Fach sein. Es wird z.B, nicht erläutert wozu man den Backslash braucht…
-
@vitusson sagte in Abo mit Regex - Hilfe gesucht:
@selbermachen
Und weil das mit dem Negieren schnell kompliziert werden kann, erschlägt man diese Audiodeskpritionen und anderes schon von Anfang an mit einer Regex in der Blacklist.Kommt darauf an. Z.B. bei
(Originalversion)
ist die Blacklist nicht so toll, da ich vielleicht eine englische Version möchte, eine norwegische aber nicht, um reale Beispiele zu nehmen. -
@selbermachen
Das ist ja auch die MediathekView-Anleitung und keine für RegExe oder Java-Bibliotheken. Und du hattest speziell nach der Verankerung gefragt.Noch dazu kommt, dass “negative lookbehind” schon ein verschrobener Teil der regulären Ausdrücke ist, der keinesfalls überall implementiert ist.
In Notepad++ sollte es funktionieren.Wenn man nie davon gehört hat, kommt man auch nicht darauf, es nachzuschlagen. Zum Nachschlagen kann man z.B. bei regular-expressions.info anfangen.
-
styroll
-