4

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

这有效:

#!/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 {
...
}

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

谢谢你的帮助

4

1 回答 1

11

对。您有 2 个选项:用 将模式括起来",但是您必须防止\被 Tcl 而不是 regxp 解析。或者你可以使用regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}].

PS:总是放在表达式{} 周围

if {[regexp -nocase [subst -nocommands -nobackslashes {something here:\s+$MYSTR}]} then {
...
}
于 2012-08-01T23:04:49.973 回答