我正在使用tcl并期望从手机发送和读取AT命令(我想使用命令发送短信)。我通过以下方式发送AT命令:
exp_send "AT\r"
expect {
-re "(.*)OK" {puts "Connected"}
}
现在我正在尝试查询手机支持的模式
exp_send "AT+CMGF=?\r"
expect {
-re "AT(.*)" {puts "$expect_out(1,string)"}
"timeout" {puts "Timeout occured"}
}
我使用的上述表达式将输出显示为
+CMGF=?
+CMGF:(0-1)
OK.
我想阅读的输出只有:
+CMGF:(0-1)
OK.
任何人都可以帮助我使用正确的正则表达式来获得所需的输出吗? 感谢。
答案 0 :(得分:0)
您需要更复杂的RE:
expect {
-re {AT\+CGMF:([^\n\r]+)} {
puts "$expect_out(1,string)"
exp_continue
}
OK { puts "done" }
timeout { puts "timed out" }
}