PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RegEx gesucht


scrawler
27.09.2007, 14:07
Hallo,

Meine Anfrage sieht simpel aus, doch (zu) komplex für mich.
Ich möchte eine simple Zeichenkette extrahieren.

Quell-String: "week: 39 from: 24.9.2007 to 30.9.2007"

Ziel: ich möchte den letzten Teil extrahieren, von "to " bis zum Ende des Strings.

grüsse,
alex


smg
27.09.2007, 14:53
Und welcher Regex Dialekt?
Und welche Sprache?

quick'n'dirty:

perl -ne 'print $1 if m/(to.*)$/' <<< "week: 39 from: 24.9.2007 to 30.9.2007"

scrawler
27.09.2007, 15:23
Vielen Dank für Deine sehr schnelle Antwort!!!

Ich verwende den regulären Ausdruck unter Java.
Einen Dialekt(BRE,ERE) habe ich nicht explizit angegeben, daher gehe ich von dem default Wert (BRE?) aus.

Deine Lösung hat bei mir leider (noch) nicht zum gewünschten Ergebnis geführt. Liegt das am Dialekt oder der Perl-spezifischen Syntax?

scrawler
27.09.2007, 17:44
Der Lösung dicht auf der Spur...
Der Ausdruck [^to]*$ bzw. [^to]*\z liefert mit das gewünschte Ergebnis. Allerdings wird als 2ter Wert noch ein leeres Objekt geliefert, welches als Index die länge des Strings enthält.
Gibt es bei der Terminierung der oberen Ausdrücke was zu beachten?

cracki
27.09.2007, 18:33
"week: 39 from: 24.9.2007 to 30.9.2007"

fuers ganze datum
/to ([\d\.]+)$/

fuer jede einzelne zahl:
/to (\d{1,2})\.(\d{1,2})\.(\d{4}|\d{2})$/

das (mit oder ohne /) sollte funkionieren.

dein [^to] tut nicht was du denkst. http://en.wikipedia.org/wiki/Regular_expression#Traditional_Unix_regular_expressions

scrawler
28.09.2007, 08:54
TOP!!!
Danke für Deine Lösung, das hilft mir sehr weiter!

(ohne / funktioniert es unter Java.)


gruss,
alex