我对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:"
。
期望脚本中的Enter
关键字是否有特殊之处?
答案 0 :(得分:3)
由于您使用了# urls = list of strings containing URLs.
with current_app.test_client() as tc:
not_found = [u for u in urls if tc.get(u).status_code == 404]
引号而不是include guard
括号,因此TCL在字符串到达正则表达式引擎之前处理反斜杠,从而生成一个没有反斜杠的字符串。这意味着""
被视为字符类{}
。
为正则表达式使用大括号:
\[Enter\]