TCL / EXPECT中正则表达式的含义

时间:2011-08-24 15:04:40

标签: regex tcl expect

我读了一个tcl测试脚本,它使用了EXPECT。一些代码是:

expect ".*hello.*yes.*morning.*"

“*”外卡匹配所有内容,但是“。”在它面前?这是什么意思?什么样的模式想要匹配?

3 个答案:

答案 0 :(得分:6)

请注意,expect命令的默认匹配样式为-glob,因此这些点实际上是字面点。可以在string match文档中找到有关glob样式匹配的帮助。

如果您希望将您的模式视为regular expression,则必须说:

expect -re ".*hello.*yes.*morning.*"

答案 1 :(得分:3)

*在正则表达式中不是通配符。是,*之后。表示前一个字符/字符类的0或更多次出现。所以这里意味着:任何符号出现0次或更多次。另请注意,根据正则表达式选项,。通常不包括换行符。

答案 2 :(得分:1)

*不是正则表达式中的通配符。您正在考虑使用文件名通配符进行shell操作,但 *如何在正则表达式中工作。完全不同的动物。在你的正则表达式中,.匹配任何字符,然后*表示'匹配0或更多前面的字符。

以下是有关正则表达式的一些信息: http://www.regular-expressions.info/tutorial.html

这里的页面直接解决了正则表达式和shell文件匹配模式之间的混淆正则表达式新手:

http://docstore.mik.ua/orelly/unix3/upt/ch32_02.htm