我试图期望使用不同类型的网络设备,但是我无法进行更复杂的正则表达式工作。
对于Cisco设备,我有:
expect {"*>"}
*正常工作
但是对于Fortinet设备,我想这样做
expect {"^[a-zA-Z0-9_.-\s]+[#]"}
,它不起作用。我检查了REGEX的“检查器”,以确保该表达式正确并且似乎正常。所以基本上,我想过滤以“ NAME_OF_DEVICE#”开头的行,因为这是您首次连接Fortinet shell时的样子
知道为什么它不起作用吗?
答案 0 :(得分:1)
从manual开始:“ Regexp样式模式遵循Tcl的regexp(“正则表达式”的缩写)命令定义的语法。正则表达式模式以-re标志引入。”
您的示例:
expect -re {^[a-zA-Z0-9_.-\s]+#} ...