如何在regexp表达式中使用变量(TCL / Expect)

时间:2012-08-01 22:53:28

标签: regex tcl expect

我正在试图弄清楚如何在正则表达式匹配中使用字符串。我一直在谷歌搜索一个小时,我想我会问专家。

这有效:

#!/usr/bin/expect

set MYSTR "value"

if [ regexp -nocase "$MYSTR" $outcome matchresult ] then {
...
}

这不起作用:

#!/usr/bin/expect

set MYSTR "value"

if [ regexp -nocase {something here:\s+$MYSTR} $outcome matchresult ] then {
...
}

我确定这是一个简单的语法问题。

感谢您的帮助

1 个答案:

答案 0 :(得分:11)

右。您有两个选项:用"括起模式,但是您必须保护\不被Tcl而不是regxp解析。或者您可以使用regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]

PS:总是{} around the expression

if {[regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]} then {
...
}