在tcl中的regexp内传递变量

时间:2012-08-31 11:35:54

标签: regex tcl

  

可能重复:
  How to use a variable in regexp expression (TCL/Expect)

我希望帮助将varibles传递给regexp。

假设我的代码是

set line "MPID:22 condition:AIS"
set id 22
if {[regexp {MPID:$id} $line]} {
puts "inside if"
}

此正则表达式不起作用。如果我将regexp改为

{[regexp {MPID:22} $line]} 

它有效。

有人可以为此提供解决方案。

1 个答案:

答案 0 :(得分:10)

而不是{MPID:$id}您要使用"MPID:$id"

if {[regexp "MPID:$id" $line]} {
    puts "inside if"
}

tcl使用{...}将表达式的各个部分组合在一起,但防止变量扩展 如果您想要变量扩展,则应使用"..."