Ошибка совпадения строк при наличии квадратных скобок в строках операндов - PullRequest
1 голос
/ 01 апреля 2020

Это выглядит так, как ожидалось:

set a 1
puts [string match $a $a]
>> 1

Однако я нахожу это неожиданным:

set b {[1]}
puts [string match $b $b]
>> 0

Можете ли вы помочь объяснить вышеуказанное поведение?

1 Ответ

3 голосов
/ 01 апреля 2020

Шаблон [1] - это выражение в скобках, соответствующее символам внутри скобок. В этом случае единственной строкой, которая будет соответствовать шаблону, является 1.

% set b {[1]}
[1]
% puts [string match $b $b]
0
% puts [string match $b "1"]
1
% 

Если вы хотите сравнить две строки, чтобы увидеть, идентичны ли они, используйте string equal ....

Если вы находитесь в оболочке unix, man n string или man 3tcl string должны открыть страницу руководства с подробной информацией о команде string.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...