Thread Zwei Zeichen _gleichzeitig_ in String finden
(19 answers)
Opened by geloescht at 2012-06-20 18:13
Hallo HP-User,
2012-06-20T17:18:52 ? Deine beiden Beispiele löschen beide alle Leerzeichen aus der Zeichenkette, so gesehen auf den ersten Blick kein Unterschied. Du könntest auch schreiben s/ +//g oder s/\s//g. Es gibt aber (zumindest) folgende Unterschiede: \s löscht außer Leerzeichen auch alle anderen Arten von Whitespace, also auch Tabs usw., vgl. perlretut: \s matches a whitespace character, the set [\ \t\r\n\f] and others. Wenn die Regexp mehr als ein Zeichen prüft, macht es trotz des g-Modifiers einen Unterschied, ob Du den +-Metacharacter verwendest oder nicht, z.B. s/€\s+/€/g löscht nach allen EUR-Zeichen alle Whitespacezeichen (alle anderen Whitespacezeichen im String bleiben aber unberührt). Oder s/^(\d+)\s+/$1\t/ ersetzt nach einer Ziffernfolge am Zeilenanfang alle Whitespacezeichen durch einen Tab. Beide würden ohne den +-Metacharacter (nach dem \s) jeweils nur das erste Whitespacezeichen nach dem EUR-Zeichen oder der Ziffernfolge ersetzen. HTH Grüße payx |