Мне нужно бежать все '''
и backslashes
в string
. Поэтому, если пользователь вводит \
, он должен быть преобразован в \\
или, если пользователь вводит '''
, он должен быть преобразован в \'''
.
Пример ввода:
This is a test \. ABCDE ''' DEFG
Пример вывода:
This is a test \\. ABCDE \''' DEFG
Мне также нужно unescape backslashes
и '''
.
Пример ввода:
asdf \\\\ and \'''
Пример вывода:
asdf \\ and '''
Я пробовал что-то подобное, но это не работает ....
input = input.replaceAll(new RegExp(r'\\'), '\\\\')
Редактировать: После попытки предложить решение из комментариев, экранирование работает, но не экранирование не.
String unescape(String input) {
return input.replaceAll(r"\'''", r"'''").replaceAll(r"\\", r"\");
}
Тест
test("Unescape", () {
String test = r" \\ TESTTEST ";
String expected = r" \ TESTTEST ";
expect(stringUtils.unescape(test), expected);
});
Выход
Expected: ' \\ TESTTEST '
Actual: ' \\\\\\\\ TESTTEST '
Which: is different.
Expected: \\ TESTTEST ...
Actual: \\\\\\\\ TES ...
^
Differ at offset 3