gpt4 book ai didi

regex - Enter : expect -re "Press\[Enter\] to continue:" does not work的特殊含义

转载 作者:行者123 更新时间:2023-12-01 12:24:56 24 4
gpt4 key购买 nike

我对expect脚本中的正则表达式处理有点疑惑。我生成的可执行文件将发回几条消息,其中包含类似 Press [Enter] to continue: 的文本。我认为处理应该如下:

spawn /tmp/install.run --prefix /opt --mode text

expect {
timeout { send_user "\nFailure to initiate license view\n"; exit 1 }
eof { send_user "\nGeneral error\n"; exit 1 }
-re "Press \[Enter\] to continue:" { send "\r" }
}

但是,脚本拒绝识别返回的文本。它仅在使用此正则表达式时有效:"Press .Enter\] to continue:"

expect脚本中的Enter关键字有什么特别之处吗?

最佳答案

由于您使用了 "" 引号而不是 {} 大括号,TCL 在字符串到达​​正则表达式引擎之前处理反斜杠,生成一个没有其中的反斜杠。这意味着 \[Enter\] 被视为字符类 [Enter]

对正则表达式使用大括号:

    -re {Press \[Enter\] to continue:} { send "\r" }

关于regex - Enter : expect -re "Press\[Enter\] to continue:" does not work的特殊含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40855937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com