TCL: поиск списка элементов, содержащих определенный символ, с помощью lsearch - PullRequest
0 голосов
/ 13 декабря 2018

В следующем списке:

{12 34 23 54 67 75 46}

Используя lsearch , какой шаблон поиска будет использоваться для поиска всех элементов из этого списка, который имеетчисло '4' в нем?

(т. Е. Выходные данные должны возвращать {34 54 46})

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Ответ, данный Брэдом Ланамом, сработает, если вы знаете, что вы подходите, не будет содержать символов с особым значением, которое нужно указывать.Если это не гарантировано, вы можете использовать:

set newlist [lsearch -all -inline -regexp $mylist (?q)4]

(? Q) делает все, что следует за ним, литеральной строкой.Так что никакой особой интерпретации каких-либо персонажей не произойдет.Но регулярное выражение не привязано по умолчанию, поэтому строка может отображаться в любом месте элементов списка для сопоставления.

0 голосов
/ 13 декабря 2018

Ссылка: lsearch

Вы можете использовать:

 set newlist [lsearch -all -inline -glob $mylist *4*]

-glob - это значение по умолчанию, я вставил его в целях документации.

-all указывает на возвращение всех результатов, а не только первое совпадение.

-inline указывает на возвращение списка в качестве результата.

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