2016-11-15 4 views
-3

Ich habe eine Zeichenfolge, die etwa wie '\\u001E\\u001Csome_text\u001F' aussieht - wobei die ersten beiden Zeichen mit zwei Backslashes und die letzte nur einen Backslash hat.Ruby - Konvertieren von einzelnen Backslash-Unicode zu doppelten Backslash

Ich möchte diese Zeichenfolge so konvertieren, dass alle Unicode-Literale zwei umgekehrte Schrägstriche enthalten, so dass die Ausgabe wie '\\u001E\\u001Csome_text\\u001F' aussehen würde. Auf welche Weise könnte ich dies tun?

+0

Wenn Da ist etwas Wron Mit meiner Frage (wie von den Downvotes angegeben), was kann ich tun, um die Frage besser zu stellen? –

+0

Sie möchten also jeden einzelnen Blackslash in einen doppelten Backslash konvertieren? Und wenn es mehr als 3 oder mehr Backslashes gibt? –

+0

Ich möchte nur die Unicode-Zeichen konvertieren. Also sollte jede Instanz von '\ uxxxx' in' \\ uxxxx' konvertiert werden. Dinge wie '\" 'sollten in Ruhe gelassen werden. –

Antwort

0

Wenn das Ziel Instanzen ist zu finden, ‚\ u‘ nicht von einem Zeichen ‚\‘ vorangestellt, dann ein negatives Lookbehind die Notwendigkeit anzupassen passen sollte:

(?<!\\)\\u 

Wenn Sie die ganze übereinstimmen soll Charakter, dann können Sie auch eine positive Vorschau verwenden Sie die folgenden Zeichen zu überprüfen:

(?<!\\)\\u(?=[0-9A-Z]{4}) 

Beide werden die Instanzen von ‚\ u‘ zurückzukehren, die Sie mit ersetzen kann ‚\\ u‘

Verwandte Themen