Tcl ожидать регулярное выражение не работает? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь рассчитывать на разные типы сетевых устройств, но не могу заставить работать более сложные регулярные выражения.

Для устройств Cisco у меня есть:

expect {"*>"}

* отлично работает

Но для устройств Fortinet я хочу сделать это

expect {"^[a-zA-Z0-9_.-\s]+[#]"}

и это не работает. Я проверил REGEX "Checker", чтобы убедиться, что выражение верно и, кажется, работает. В общем, я хочу отфильтровать строки, начинающиеся с «NAME_OF_DEVICE #», потому что именно так выглядит оболочка Fortinet при первом подключении к ней

Есть идеи, почему это не сработает?

1 Ответ

0 голосов
/ 25 июня 2018

Из руководства : «Шаблоны в стиле Regexp следуют синтаксису, определенному командой Tcl regexp (сокращение от« регулярное выражение »). Шаблоны regexp вводятся с флагом -re."

Ваш пример:

expect -re {^[a-zA-Z0-9_.-\s]+#} ...

...