Regex: ersetzt backslash mit einem doppelten umgekehrten Schrägstrich, aber nicht Doppel-backslash mit vierfach-backslash

Habe ich folgenden regex:

s/\\/\\\\/g

Dies ist eine schöne Aufgabe ersetzen alle " \ " - Zeichen durch "\\". Allerdings möchte ich zum Schutz gegen matching-backslashes, die neben anderen backslashes. Wenn ich dies tun:

s/[^\\]\\[^\\]/\\\\/g

es nur Fänge nicht aufeinander folgende umgekehrte Schrägstriche. Aber jetzt gibt es das offensichtliche problem, dass die Spiele gehören die beiden benachbarten Zeichen, das sollte nicht ersetzt werden. Wie kann ich das umgehen?

  • Sie müssen tun, irgendeine Art von, es sei denn, in der Regel mit einer lookahead-Funktion
InformationsquelleAutor Odrade | 2009-06-10
Schreibe einen Kommentar