#regex #tcl
Вопрос:
Я заменял не буквенно-цифровой символ, такой как .
etc, с помощью команды regsub, и это не помогает. Не могли бы вы, пожалуйста, помочь мне
Текст:
This is the new begin.With old memories
Необходимо заменить "."
на .
Ожидаемый:
This is the new begin.With old memories
Пытается с
regsub -all {.\} $string {.}
Заранее спасибо
Комментарии:
1. Для буквальных строк,
string map
возможно, было бы лучше.2. В чем на самом деле проблема? Какой вывод на самом деле дает вам regsub?
3. Имейте в виду, что строка замены не является шаблоном, это буквальная строка. Вместо
{.}
того, чтобы просто использовать{.}
-я подозреваю, что ваша «проблема» в том, что вы видите выводThis is the new begin.With old memories
с обратной косой чертой перед точкой.
Ответ №1:
Как сказал Донал, просто используйте строковую карту, например
% set a {This is the new begin.With old memories}
This is the new begin.With old memories
% string map {.\ .} $a
This is the new begin.With old memories
Как вы можете видеть, мне пришлось избежать обратной косой черты со второй обратной косой чертой.