Я не вполне точно уверен, что вы хотите, но вот пример:
set str "aaaa bbbb cccc "
regexp {(\S+)\s+(\S+)\s+(\S+)} $str -> wordA wordB wordC
puts "The first is \"$wordA\", second \"$wordB\", and third \"$wordC\""
, который производит этот вывод:
Первый«aaaa», второй «bbbb» и третий «cccc»
В RE \S+
означает непустую последовательность непробельных символов, а \s+
означает непустая последовательность пробелов.Я мог бы использовать \w+
("слово" символы) и \W+
("не слово" символы) соответственно.Скобки в RE охватывают группы захвата;Tcl не требует, чтобы RE соответствовали всей входной строке.