Regex 将正则表达式与expect一起使用

Regex 将正则表达式与expect一起使用,regex,tcl,expect,Regex,Tcl,Expect,我正在尝试编写一个expect脚本,允许我搜索文件A,如果找到文件A,则发送一系列命令。如果找到文件B或C,则继续执行脚本。我一直在研究正则表达式。我通过www.myregextester.com单独运行这个表达式,其中包含我正在搜索的数据,它匹配得很好。如果有人有这方面的经验,我会非常感谢你的帮助 send "term length 0\r" expect "*#" send "wr mem\r" expect "*#" send "dir flash:\r" expect if [

我正在尝试编写一个expect脚本,允许我搜索文件A,如果找到文件A,则发送一系列命令。如果找到文件B或C,则继续执行脚本。我一直在研究正则表达式。我通过www.myregextester.com单独运行这个表达式,其中包含我正在搜索的数据,它匹配得很好。如果有人有这方面的经验,我会非常感谢你的帮助

send "term length 0\r"
expect "*#"
send "wr mem\r"
expect "*#"
send "dir flash:\r"
expect 
    if [[ \bc3750-ipservicesk9-mz.122-55.SE7.bin\b ]]; then {
        send "conf t\r"
        expect "*(config)#"
        send "boot system flash:c3750-ipservicesk9-mz.122-55.SE7.bin\r"
        expect "*(config)#"
        send "exit\r"
        expect "*#"
        send "reload at 02:00 8 June\r"
        expect "System configuration has been modified. Save? [yes/no]:"
        send "yes\r"
        expect "Proceed with reload? [confirm]"
        send "\r"
        expect "*#"
        send "wr\r"
        expect "*#"
        send "exit\r
        expect eof
    elif [[ \bc3750-ipservicesk9-mz.122-55.SE5\b | b\c3750-ipservicesk9-mz.122-55.SE5.bin\b} ]]; then
fi
}

Expect是Tcl的一个扩展:您可以阅读有关Tcl正则表达式的内容。

这似乎真的做到了,也感谢您的链接。这是一个巨大的帮助!
expect {
    -re {\mc3750-ipservicesk9-mz\.122-55\.SE7\.bin\M} {
        send "conf t\r"
        #...
    }
    -re {\mc3750-ipservicesk9-mz\.122-55\.SE5(?:\.bin)?\M} 
}