Entsprechung für regulären Ausdruck gesucht
Baciu
- regex
Hallo Forum,
ich bin auf der Suche nach einem regulären Ausdruck. In einem HTML-Quelltext habe ich mehrere Uhrzeiten im Format ZifferZiffer.ZifferZiffer Nun möchte ich den Punkt, der die Ziffern trennt durch einen Doppelpunkt ersetzen. Mit Hilfe von Tutorials habe ich im Netz einen Ausdruck zusammengebastelt
\.(?=[0-9])
Dieser funktioniert bei mir im OpenOffice, leider nicht im emacs (Aquamacs). Gibt es dafür einen anderen Ausdruck den Aquamacs versteht und mir das gleiche Ergebnis liefert? Danke schon mal.
@@Baciu
ich bin auf der Suche nach einem regulären Ausdruck. In einem HTML-Quelltext habe ich mehrere Uhrzeiten …
Wenn du die Uhrzeiten richtig mit HTML ausgezeichnet hast, sollten die enfach zu finden sein: sie stehen in time
-Elementen.
… im Format ZifferZiffer.ZifferZiffer
Hast du vielleicht noch andere Angaben in der Form auf der Seite, die nicht Uhrzeiten sind? Preise? 16.10?[1]
Suche nach 2 Ziffern: [0-9]{2}
oder \d{2}
. 2 Ziffern, Punkt, 2 Ziffern: ([0-9]{2})\.[(0-9]{2})
bzw. (\d{2})\.(\d{2})
. Die Klammern dienen dazu, sich den Inhalt zu merken. Das baust du wieder ein, indem du mit $1:$2
ersetzst.
Eventuell auch eine Nicht-Ziffer davor und danach mit in den Ausdruck aufnehmen: ([^0-9][0-9]{2})\.[(0-9]{2}[^0-9])
bzw. (\D\d{2})\.(\d{2}\D)
. Damit wird 9876.50 nicht erkannt; 16.10 aber immer doch.
Damit auch Uhrzeiten am Anfang und Ende erkannt werden: ((?:^|[^0-9])[0-9]{2})\.[(0-9]{2}(?:$|[^0-9]))
. ((?:
klammert ohne den Inhalt zu merken, ^
hat außerhalb von []
eine ander Bedeutung als innerhalb.)
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Soviel kosteten AMIGA-Schallplatten. ↩︎
Hallo Gunnar,
danke für die schnelle Antwort. Also andere Angaben in der Form gibt es nicht auf der Seite. Das Problem scheint der Editor (Aquamacs) zu sein. Ich habe den Ausdruck ([0-9]{2}).([0-9]{2}) im OpenOffice ausprobiert, funktioniert wunderbar. Der Aquamacs hat ein Problem mit den runden Klammern wie es scheint, er findet nichts. Keine Ahnung, wo ich da schrauben muss...
Problem gelöst:
nur etwas andere Schreibweise für den Editor:
\([0-9]\{1,2\}\)\.\([0-9]\{1,2\}\) und ersetzen mit \1:\2
@@Baciu
\([0-9]\{1,2\}\)\.\([0-9]\{1,2\}\) und ersetzen mit \1:\2
Ich hatte es angedeutet, dass Uhrzeiten (und Daten) in HTML mit dem time
-Element ausgezeichnet werden können. Das erreichst du hier, indem du mit <time>\1:\2</time>
ersetzt.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
@Gunnar Bittersmann
auch dass hab ich nun gemacht, die Uhrzeiten haben nun <time></time> :-) Noch mal danke für die hilfreichen Tipps.