Возможно, вам понадобится использовать подстановочный знак lsearch
?
set myList {
{first apples dollars}
{second bananas euros}
{third pears pesos}
}
set myFruit [lindex $myList [lsearch $myList "*euros*"] 1]
puts $myFruit
Хотя приведенное выше также будет соответствовать слову "нейробиология", например, вы можете использовать что-то вроде следующегоесли это возможно:
lsearch -regexp $myList {\yeuros\y}
Если это становится более сложным, например, если вы хотите сопоставить весь подэлемент (и, следовательно, не хотите сопоставлять euros
в элементе {forth kiwi "0.5 euros each"}
тогда вместо того, чтобы пытаться сделать поиск более гибким, я считаю, что было бы намного проще использовать цикл:
for {set i 0} {$i < [llength $myList]} {incr i} {
if {"euros" in [split [lindex $myList $i]]} {
set myFruit [lindex $myList $i]
puts $myFruit
}
}