Hilfe bei RegEx Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
volkerdoelling
Beiträge: 7
Registriert: 28.06.2004 13:50:55

Hilfe bei RegEx Problem

Beitrag von volkerdoelling » 07.09.2004 13:32:05

Hallo !
Ich habe folgendes Problem, vielleicht ist es leicht zu lösen, aber ich sitze jetzt schon ewig vor der Kiste und bekomms nicht hin.

Ich habe mit HTML Parser in Perl das ganze HTML rausgezogen, klappt sehr nett. Alle Sonderzeichen, etc. sind auch weg, ich hab reinen Text in der Form:

textblablatext18:56UhrTextblablabla18:46Uhrblablabla

Ich möchte den Text vor den ersten Ziffern wegschneiden und dabei
den Text zwischen den Ziffern behalten.

Leerzeichen o.ä. sind nicht mehr vorhanden.

$_ =~ s%\w*Uhr%Testersatz%g;

klappt nicht.

Vielen Dank für die Erleuchtung:)

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 07.09.2004 13:54:41

Mit sed könnte das so aussehen:

Code: Alles auswählen

mars:~# echo "textblablatext18:56UhrTextblablabla18:46Uhrblablabla " | sed 's/^[a-zA-Z]*//'
18:56UhrTextblablabla18:46Uhrblablabla 
mars:~#
Ich weiss aber nicht, ob die regex-Variante bei Pörl genauso ist, da gibt es leider Unterschiede.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.5.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 4.0 Ghz., Radeon RX 5700 XT, 16 GB Ram, XFCE

volkerdoelling
Beiträge: 7
Registriert: 28.06.2004 13:50:55

Beitrag von volkerdoelling » 07.09.2004 14:09:59

Sorry, habe mich unpräzise ausgedrückt:
Das was ich mir aus dem Text ziehen möchte ist die erste Uhrzeitangabe
mit dem Text bis zur nächsten Uhrzeitangabe
Wenn der Text also z.B. so ist:

blabla15:33UhrTextwillich45haben17:19UhrTextw65illichaben
sollte mir das RegEx ausspucken:
15:33Textwillichhaben
17:19Textwillichhaben

Die Uhrzeit ist immer im Format: \d\d:\d\dUhr

Danke.
Volker

<mawe>
Beiträge: 24
Registriert: 07.09.2004 15:01:41
Wohnort: Purkersdorf

Beitrag von <mawe> » 07.09.2004 15:06:22

Hi!

Hier meine Lösung, nicht sehr schön, funktioniert aber (glaube ich :wink:):

Code: Alles auswählen

$_ =~ s#\w*(\d\d:\d\d)Uhr([A-z]+)(?:\d+)?([A-z]+)#$1$2$3\n#g;
Gruß, <mawe>

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 07.09.2004 15:21:53

Oder man baut sich erstmal ein paar Seperatoren da rein und bearbeitet das anschliessend weiter, mit cut, awk oder sonstwas:

Code: Alles auswählen

mars:/tmp# echo "blabla15:33UhrTextwillich45haben17:19UhrTextw65illichaben" | sed 's/\([0-9][0-9]:[0-9][0-9]Uhr\)/;\1;/g' 
blabla;15:33Uhr;Textwillich45haben;17:19Uhr;Textw65illichaben
mars:/tmp# 

@<mawe>

Respekt!! :)


Gruss, mistersixt.
--
System: Debian Bookworm, 6.5.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 4.0 Ghz., Radeon RX 5700 XT, 16 GB Ram, XFCE

volkerdoelling
Beiträge: 7
Registriert: 28.06.2004 13:50:55

Beitrag von volkerdoelling » 09.09.2004 13:45:45

Danke, ich werds mal versuchen.

Antworten