我如何检查expect_out(缓冲区)中的某个字符串,如果找到则打印expect_out(缓冲区)?

时间:2013-03-26 13:13:47

标签: tcl expect

我想检查我的expect_out(buffer)是否包含%作为任意一行的第一个字符 如果它被发现,那么打印出来的是预期的污染物。

2 个答案:

答案 0 :(得分:2)

regexp的-lineanchor选项使^匹配行的开头而不仅仅是字符串的开头。

if {[regexp -lineanchor -- {^%} $buffer]} {
    puts -nonewline $buffer
}

答案 1 :(得分:1)

我对期望并不熟悉。但如果它只是一个普通的tcl字符串,如:

%line1
^line2
&line3

然后你可以这样做:

set buffer "%line1\n^line2\n&line3"
foreach line [split $buffer "\n"] {
    if {[string index $line 0] == "%"} {
        puts $buffer; # prints the entire buffer, puts $line prints this line only
        break
    }
}