将csh正则表达式匹配代码更改为tcl

时间:2013-02-06 11:26:52

标签: tcl csh

我需要将shell中的以下代码更改为tcl。请帮忙。

if (` expr $_f : proj_lp_ ` == 8) then

我需要if条件中的条件的tcl等价物。

谢谢!

1 个答案:

答案 0 :(得分:1)

请参阅expr manual page where is states:

  STRING : REGEXP
          anchored pattern match of REGEXP in STRING

因此,您的_f变量包含一个字符串,您正在将其与文字proj_lp_进行比较。结果是比赛的长度。在tcl代码中可能是if {[regexp {^proj_lp_} $_f]} { ...},因为你只关心它是否匹配。您也可以使用if {[string match "proj_lp_*" $_f]} {...}。 expr(1)页面说这是一个锚定正则表达式 - 因此添加了插入符号。我给出的两个例子只会在输入字符串的开头匹配(即:它们被锚定)。