Как заменить специальный символ в строке сценарием tcl? - PullRequest
0 голосов
/ 18 февраля 2020

В file.txt

obj = "hi/this/is[1]/script"

преобразовать строку в

obj = "hi/this/is\[1]/script"

Есть ли способ сделать это в tcl?

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Если вы хотите заменить все вхождения символа, string map очень подходит:

# Careful with the quoting here
set obj [string map [list {[} {\[}] $obj]

Если вы хотите просто заменить первое вхождение, regsub - лучший инструмент

set obj [regsub {\[} $obj {\\&}]

(& становится согласованной строкой, и мы должны быть осторожны с обратной косой чертой как в RE, так и в тексте замещения.)

0 голосов
/ 18 февраля 2020

Один способ использует string map:

% set obj {obj = "hi/this/is[1]/script"}
obj = "hi/this/is[1]/script"
% string map {\[ \\\[} $obj
obj = "hi/this/is\[1]/script"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...