Tcl 如何在expect\u out(缓冲区)中检查特定字符串,并在找到该字符串时打印expect\u out(缓冲区)?
我想检查我的Tcl 如何在expect\u out(缓冲区)中检查特定字符串,并在找到该字符串时打印expect\u out(缓冲区)?,tcl,expect,Tcl,Expect,我想检查我的expect\u out(buffer)是否包含%作为任何一行的第一个字符 如果找到了,请打印wole expect out contants。我对expect不太熟悉。但是如果它只是一个普通的tcl字符串,比如: %line1 ^line2 &line3 然后你可以这样做: set buffer "%line1\n^line2\n&line3" foreach line [split $buffer "\n"] { if {[string index $l
expect\u out(buffer)
是否包含%
作为任何一行的第一个字符
如果找到了,请打印wole expect out contants。我对expect不太熟悉。但是如果它只是一个普通的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
}
}
我对expect不太熟悉。但是如果它只是一个普通的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
}
}
的-lineanchor选项使^匹配行的开头,而不仅仅是字符串的开头
if {[regexp -lineanchor -- {^%} $buffer]} {
puts -nonewline $buffer
}
的-lineanchor选项使^匹配行的开头,而不仅仅是字符串的开头
if {[regexp -lineanchor -- {^%} $buffer]} {
puts -nonewline $buffer
}
谢谢,@ben我有另一个for循环,我将在其中执行此命令。此
break
语句将仅从此循环或外部循环退出,我如何删除%之前的尾随空间。它将仅从内部循环中断。您可以使用string trim
删除前导和尾随空格string trimpleft
将仅删除前导空格。全部都在这里:谢谢,@ben我有另一个for循环,我将在其中执行此命令。此break
语句将仅从此循环或外部循环退出,我如何在%之前删除尾随空间?它将仅从内部循环中断。您可以使用string trim
删除前导和尾随空格string trimpleft
将仅删除前导空格。都在这里: