Ich versuche in Ruby eine einfache Zeichenkette zu schreiben.
Das zweite Argument von sub () ist ein langes Stück minimierten JavaScript, in dem reguläre Ausdrücke enthalten sind. Rückverweise in der Regex in dieser Zeichenfolge scheinen das Ergebnis von sub zu beeinflussen, da die ersetzte Zeichenfolge (d. H. Das erste Argument) in der Ausgabezeichenfolge erscheint.
Beispiel:
%Vor%Ich möchte die Ausgabe:
%Vor%Nicht:
%Vor%oder wenn Sie die Regex umgehen
%Vor%Im Grunde genommen möchte ich eine Möglichkeit, eine String-Sub zu erstellen, die überhaupt keine Regex-Konsequenzen hat - nur eine einfache String-Ersetzung.
Um zu vermeiden, herauszufinden, wie die Ersatzzeichenfolge entfernt werden kann, verwenden Sie Regex.escape
. Es ist praktisch, wenn der Austausch kompliziert ist oder der Umgang damit unnötig ist. Ein kleiner Helfer auf String ist auch nett.
Nun, da '\&'
(also \
gefolgt von &
) als spezielle Regex-Anweisung interpretiert wird, liegt es nahe, den Backslash zu umgehen. In der Tat funktioniert das:
Beachten Sie, dass \\&
die literale Zeichenfolge \&
darstellt.