tcl - tcl 期望正则表达式不起作用?
问题描述
我试图期待不同类型的网络设备,但我无法制作更复杂的正则表达式。
对于 Cisco 设备,我有:
expect {"*>"}
* 工作正常
但对于 Fortinet 设备,我想这样做
expect {"^[a-zA-Z0-9_.-\s]+[#]"}
它不起作用。我检查了一个正则表达式“检查器”以确保表达式是正确的并且它似乎有效。所以基本上,我想过滤以“NAME_OF_DEVICE #”开头的行,因为这是你第一次连接到 Fortinet shell 时的样子
知道为什么它不起作用吗?
解决方案
来自手册:“正则表达式样式遵循 Tcl 的正则表达式(“正则表达式”的缩写)命令定义的语法。正则表达式模式是通过标志 -re 引入的。”
你的例子:
expect -re {^[a-zA-Z0-9_.-\s]+#} ...
推荐阅读
- .net - IIS 10:如何在生产环境中解决 403?
- flutter - Flutter中动态删除标签栏的一个元素
- javascript - 强制水平滚动视图从右侧开始
- oauth - 无法使用 vertx 获得简单的 Oauth 以与谷歌合作
- clojure - 通过接受用户输入将两个数字相加
- sql-server - 如何使用 ML.NET 识别语言?
- laravel - 在 Laravel 中处理来自 3rd 方 API 的令牌过期
- java - Android Studio 3.5 需要哪个版本的 Java?
- html - HTML 不在本地显示照片
- c# - .NET Core 3.0 身份问题