Sie können es wie folgt tun:
set txt {The image of yours doesnot match the image I had in mind}
set words [split $txt]
for {set i 0} {$i < [llength $words]} {incr i} {
if {[lindex $words $i] eq "image"} {
puts [lindex $words [incr i]]
}
}
Diese Lösung bei jedem Wort in Folge aussieht. Wenn es gleich "image" ist, druckt es das folgende Wort und fährt dann mit dem nächsten Wort in der Liste fort.
bearbeiten
Um jedes gefundene Wort in einer Variablen zu speichern und sofort verwenden, ersetzen puts [lindex $words [incr i]]
mit:
set found [lindex $words [incr i]]
# do something with $found
Um jedes gefundene Wort in einer Liste zu speichern und mit allen Wörtern beschäftigen nach sie alle, ersetzen die gleiche Linie zu finden, mit:
lappend found [lindex $words [incr i]]
Es ist eine gute Ideeeinstellenin die leere Liste vor der Suche nach Wörtern.
Dokumentation: < (operator), eq (operator), for, if, incr, lappend, lindex, llength, puts, set, split
Kann ich es auf eine Variable wie unten * text1 = von text1 = I * Ich muss jedes Wort auf eine Variable setzen und diese Variable in meinem Skript verwenden – johnny