这个问题已经在这里有了答案:
已关闭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/