这个问题已经在这里有了答案:




已关闭8年。






我需要帮助将变量传递给正则表达式。

假设我的代码是

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

此正则表达式不起作用。如果我将regexp更改为
{[regexp {MPID:22} $line]}

有用。

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

最佳答案

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

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

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

关于regex - 在tcl中的正则表达式中传递变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12214541/

10-11 17:58