Regex Expect语句提示符
我正在尝试匹配提示,但括号Regex Expect语句提示符,regex,tcl,expect,Regex,Tcl,Expect,我正在尝试匹配提示,但括号(|#)中的OR语句无效 以下仅适用于%结束提示,不适用于#结束提示: set FULLPROMPT "${HOST} (.+)(%|#) $" 以下内容对于任何提示都不起作用:/: set FULLPROMPT "${HOST} (.+)% $" 我显然错过了一些东西 提示可以是这样的 12:33 user@hostname ~% 12:33 root@hostname /usr/local/folder# Expect正在运行 set HOST "hostna
(|#)中的OR语句
无效
以下仅适用于%结束提示,不适用于#结束提示:
set FULLPROMPT "${HOST} (.+)(%|#) $"
以下内容对于任何提示都不起作用:/:
set FULLPROMPT "${HOST} (.+)% $"
我显然错过了一些东西
提示可以是这样的
12:33 user@hostname ~%
12:33 root@hostname /usr/local/folder#
Expect正在运行
set HOST "hostname"
set FULLPROMPT "${HOST} (.+)(%|#) $"
send "\n"
expect -re $FULLPROMPT
非常感谢Schelte Bron提供的任何帮助,我现在可以准确地看到正则表达式如何匹配提示。 结果是提示有颜色,这会在
%
或#
之前和之后放置所有类型的字符
要克服这个问题,你可以
expect -d
多亏了Schelte Bron,我现在可以准确地看到正则表达式如何匹配提示。 结果是提示有颜色,这会在
%
或#
之前和之后放置所有类型的字符
要克服这个问题,你可以
expect -d
您的正则表达式在
%
或之后有空格(.+)(|#)$
?您检查过了吗?是的,在%和#我怀疑您的输入字符串可能在%
或#
之后没有空格?输入字符串是什么意思?提示如下:13:02user@hostname~%cmd
13:02root@hostname/home/user#cmd
提示中是否有彩色或粗体字符?这可能会在#之后放置ansi转义序列,而不是空格。使用expect-d
运行脚本以查看实际情况。您的正则表达式在%
或\
之后有空格(.+)(|#)$
?您检查过了吗?是的,在%和#我怀疑您的输入字符串可能在%
或#
之后没有空格?输入字符串是什么意思?提示如下:13:02user@hostname~%cmd
13:02root@hostname/home/user#cmd
提示中是否有彩色或粗体字符?这可能会在#之后放置ansi转义序列,而不是空格。使用expect-d
运行脚本以查看实际情况。重写提示是最简单的解决方案之一,FWIW。重写提示是最简单的解决方案之一,FWIW。