PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchmuster gesucht vor und ab einem Zeichen


Reksio
01.02.2008, 13:05
Hi,

mag zwar sehr rudimentär klingen. Versuche mich aber nicht allzu oft an regulären Ausdrücken.
Habe folgende Texte nach der Art wie:

gewöhnlich - innovativ.

Nun möchte ich immer vor und nach dem Zeichen einzeln auslesen. Also einmal alles nach dem Minus und einmal alles vor dem Minus.

Nach dem Minus hatte ich versucht mit:
$suchmuster = '/\- *?/'
Da bekomme ich nur das Minuszeichen. Kann mir jemand einen Tipp geben?


Alamar
01.02.2008, 17:07
Kommt jetzt natürlich auf den Inhalt der Strings an, aber
wenn in keinem ein " - " vorkommen kann ist wohl

/(.*) - (.*)/

das simpelste. Das würde auf einmal beides auslesen.
Den vorderen Teil eben in $1 und den hinteren in $2.
(Wobei das wo sie gespeichert werden ja sprachabhängig ist bzw. wie
die Vars benannt sind etc.)
Wenn du es separat machen willst geht natürlich für vorne
/(.*) - / und hinten / - (.*)/
Oder du machst es mit einer lookahead/behind assertion, dann brauchts nichtmal die Klammern weil dann nur der gewünschte Teil in $& steht.

kill4h`
02.02.2008, 12:31
Wäre denn da nicht ein split() einfacher?

Reksio
06.02.2008, 10:42
Vielen Dank. Passt wunderbar.
Aber wieso muss ich das - nicht so schreiben: \- ???

kill4h`
06.02.2008, 10:48
Ganz einfach:
Das Zeichen "-" ist kein Sonderzeichen (außer du nutzt es in einer Zeichenklasse wie "[A-Z]"). Daher steht es auch einfach nur für sich selbst und muss nicht escaped werden.