Hi,
das hat man nun davon, dass man sich nie so richtig mit regex anfreunden wollte. Da stehe ich nun doof da.
Aber ich bin ja lernfähig und frage hier mal höflich nach Hilfe.
Ausgangslage:
Ich möchte meine Filmsammlung mit "Data Crow" (http://www.datacrow.net) zum Verwalten einlesen.
Nun bietet das Programm die Möglichkeit, die Internet-Filmdatenbanken automatisch nach Informationen abzusuchen. Dafür kann jeweils der Dateiname als Titel des Films zum Suchen verwendet werden. Mittels eines regulären Ausdrucks können Teile aus dem Dateinamen gelöscht werden, so daß ImDB.de u.a damit auch was anfangen können.
Grundlage der Dateinamen sind hier die üblichen OTR-Namen, also z.B.:
Shrek_Oh_du_Shrekliche_11.12.08_15-55_orf1_20_TVOON_DE.mpg-cut.1.avi
Robocop_3_12.01.17_01-10_kabel1_96_TVOON_DE.mpg-cut.1.avi
Star_Trek_VIII_12.04.15_18-50_uke4_130_TVOON_DE.mpg-cut.1.avi
Wie man sieht, können hier Filmnamen auch mit Teil-Nummern auftauchen, entweder normal oder aber als auch mit römischen Ziffern
Aufgabe des RegExp:
Definiere Alle Zeichen rechtsliegend ab dem 1. Zeichen vor dem Datumsstring, welches ein Unterstrich ist,
dabei ist der Datumsstring imho: [0-9][0-9]\.[01][0-9]\.[0-3][0-9]
Oder?
Geht das irgendwie?
Idee: _[0-9][0-9]\.[01][0-9]\.[0-3][0-9]_*
...geht aber leider nicht
Regex: Text ab bestimmter Zeichenfolge (Datum)
- ArcticBears
- Beiträge: 82
- Registriert: 21.07.2012 00:03:59
- Lizenz eigener Beiträge: GNU General Public License
Regex: Text ab bestimmter Zeichenfolge (Datum)
PC-Daten:
(1) MS-7345, Intel(R) Core(TM)2 Quad CPU Q6600@2.40GHz, 4GB RAM, NV43 [GeForce 6600]
(2) HP-17-cp0275, AMD Ryzen 7 5700U, 16GB RAM
(3) Raspberry PI400, 4GB RAM
(1) MS-7345, Intel(R) Core(TM)2 Quad CPU Q6600@2.40GHz, 4GB RAM, NV43 [GeForce 6600]
(2) HP-17-cp0275, AMD Ryzen 7 5700U, 16GB RAM
(3) Raspberry PI400, 4GB RAM
Re: Regex: Text ab bestimmter Zeichenfolge (Datum)
Die Idee war schon ganz gut. Korrekt eher so:
Gewisse Sonderfälle wie Datum im Filmnamen werden natürlich nicht korrekt behandelt
Im Nachgang könntest du noch die Unterstriche durch Leerzeichen oder sonstwas austauschen. Dafür kannst du aber neben "sed" auch "tr" nehmen.
Wenn das Programm selbst Regex interpretieren kann musst du das sed-Zeug weglassen. Leider weiß ich jedoch nicht ob in deinem Programm die Substitution genauso aussieht wie bei sed.
Code: Alles auswählen
sed 's/_[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9].*//' dateiname
Im Nachgang könntest du noch die Unterstriche durch Leerzeichen oder sonstwas austauschen. Dafür kannst du aber neben "sed" auch "tr" nehmen.
Wenn das Programm selbst Regex interpretieren kann musst du das sed-Zeug weglassen. Leider weiß ich jedoch nicht ob in deinem Programm die Substitution genauso aussieht wie bei sed.
- ArcticBears
- Beiträge: 82
- Registriert: 21.07.2012 00:03:59
- Lizenz eigener Beiträge: GNU General Public License
Re: Regex: Text ab bestimmter Zeichenfolge (Datum)
Huiiii, das ging aber schnell mit der Antwort. Danke.
Inzwischen war ich natürlich nicht untätig und habe "txt2regex" und "kodos" entdeckt. Das sind ja genau die Teilchen, die mir beim Bau helfen. (so mal als Tipp für die, die zufällig bei der Suche nach ähnlichem hier bei diesem Artikel landen...) "visual-regexp" ist da schon etwas komplexer....
So bin ich dann auch drauf gekommen, dass ich den Punkt vor dem "*" vergessen hatte.
Lt. "kodos" wäre '_[0-9][0-9]\.[01][0-9]\.[0-3][0-9]_.*' schon ok, aber leider geht das auch nicht bei DataCrow.
sed selbst kann ich da ja nicht einsetzen, da der Autor von DataCrow hier ja nur ein RegEx verlangt.
Und meine Dateiensammlung möchte ich natürlich auch nicht umbenennen, denn die Dateinamen haben ihren ganz bestimmten Zweck!
Naja. Ich habe mal den Autor angeschrieben. Vlt. mag der sich hier ja mal dazu äußern?!
Oder ich finde selbst den zuständigen Programmteil in der Source, aber von Java habe ich auch nicht gerade viel Ahnung.
Oder es findet sich jmd. der schon vor dem gleichen Problem stand mit DC otr-Dateien zu importieren....?
Inzwischen war ich natürlich nicht untätig und habe "txt2regex" und "kodos" entdeckt. Das sind ja genau die Teilchen, die mir beim Bau helfen. (so mal als Tipp für die, die zufällig bei der Suche nach ähnlichem hier bei diesem Artikel landen...) "visual-regexp" ist da schon etwas komplexer....
So bin ich dann auch drauf gekommen, dass ich den Punkt vor dem "*" vergessen hatte.
Lt. "kodos" wäre '_[0-9][0-9]\.[01][0-9]\.[0-3][0-9]_.*' schon ok, aber leider geht das auch nicht bei DataCrow.
sed selbst kann ich da ja nicht einsetzen, da der Autor von DataCrow hier ja nur ein RegEx verlangt.
Und meine Dateiensammlung möchte ich natürlich auch nicht umbenennen, denn die Dateinamen haben ihren ganz bestimmten Zweck!
Naja. Ich habe mal den Autor angeschrieben. Vlt. mag der sich hier ja mal dazu äußern?!
Oder ich finde selbst den zuständigen Programmteil in der Source, aber von Java habe ich auch nicht gerade viel Ahnung.
Oder es findet sich jmd. der schon vor dem gleichen Problem stand mit DC otr-Dateien zu importieren....?
PC-Daten:
(1) MS-7345, Intel(R) Core(TM)2 Quad CPU Q6600@2.40GHz, 4GB RAM, NV43 [GeForce 6600]
(2) HP-17-cp0275, AMD Ryzen 7 5700U, 16GB RAM
(3) Raspberry PI400, 4GB RAM
(1) MS-7345, Intel(R) Core(TM)2 Quad CPU Q6600@2.40GHz, 4GB RAM, NV43 [GeForce 6600]
(2) HP-17-cp0275, AMD Ryzen 7 5700U, 16GB RAM
(3) Raspberry PI400, 4GB RAM