【问题标题】:search for variable in expect response using regex使用正则表达式在期望响应中搜索变量
【发布时间】:2020-04-15 11:45:29
【问题描述】:

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

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

【问题讨论】:

    标签: regex expect


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多