样式匹配
*
号
1 2 |
|
输入philosophic,输出为hilosophic philosophic,hi*
匹配的是hilosophic
如果是hi*hi
,则匹配的是hilosophi
如果是*hi*
,则匹配的是philosop hi c\n ,而不是p hi losophic\n,因为匹配是从左到右进行,且*尽可能匹配更多的字符,但是要符合样式,所以第一个*匹配的字符多一些
以*
开头的样式并不经常用到,像*hi*
,它能把前面不匹配的数据保存在expect_out(0,string),但是expect_out(buffer)中也会保存,所以这点也没什么意义
以*
结尾的样式经常需要认真考虑,因为程序的输出不像人的标准输入一样是一行一行而是一堆一堆进行,这样可能匹配的最多数据还没发送完,程序已经返回了。因为*
可以匹配任何东西,包括空字符串,可以用它做结尾匹配人的一些输入,并清理输入缓存。
- 例子: