无法理解tcl中regexp的输出

时间:2015-08-13 12:58:55

标签: tcl

请解释这个tcl命令的输出,我 没有得到结果。

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

如何分配此值

1 个答案:

答案 0 :(得分:1)

记录Tcl regexp命令,将子匹配分配给您提供名称的变量。你给出的第一个这样的变量是tmp1,它获得整个RE匹配的整个字符串(可能是整个输入字符串的子字符串; Tcl的RE引擎默认不锚定匹配)。第二个这样的变量是Pnr_clk,它获得第一个带括号的子RE匹配的内容,在这种情况下是clk,因为括号前的\s*贪婪地消耗了{{1}之后的空白}}