2015-08-13 5 views
0

Пожалуйста, объясните вывод этой команды tcl, я получаю , не получив результат.не может понять вывод regexp в tcl

on tclsh  
set line = "Clock Domain:    clk"  
regexp {Clock Domain:\s*(.+)} $line tmp1 Pnr_clk 
$tmp1 = "Clock Domain:    clk"  
$Pnr_clk = clk 

Как это значение присваивается

ответ

1

ТХЛ regexp команда документирована для назначения submatches к переменным, чьи имена вы предоставляете. Первая такая переменная, которую вы даете, это tmp1, которая получает всю строку, которая соответствует общей RE (которая может быть подстрокой общей входной строки, механизм RE Tcl не устанавливает привязки по умолчанию). Вторая такая переменная равна Pnr_clk, которая получает то, что соответствует первому скобку под-RE, которая в этом случае равна clk, потому что \s* перед скобкой жадно потреблял пробел после Clock Domain:.

Смежные вопросы