使用正则表达式在期望响应中搜索变量

search for variable in expect response using regex

我正在尝试使用 expect 获取服务器编号 我尝试了以下两种方法,但都不起作用,有人有解决方案吗?

expect -re {([0-9]*), Name: $server} expect -re {([0-9]*), Name: $server}

Expect 是 的扩展,Tcl 使用大括号进行无插值的引用(就像 shell 使用单引号的方式)。为了允许变量扩展,您需要使用双引号。然而双引号也允许命令替换,Tcl 使用方括号。您需要这样做:

expect -re "(\[0-9]*), Name $server"

但是您不需要对数字使用正则表达式括号表达式:

expect -re "(\d*), Name $server"

由于使用双引号,反斜杠加倍。