У меня есть список переменный, содержащие несколько значений:регулярное_выражение цикла, чтобы найти первый экземпляр каждого запроса TCL
lappend list {query1}
{query2}
{query3}
И некоторые данные в file1 с их частями, соответствующих значения выше
query1 first data
query1 different data
query1 different data
query2 another data
query2 random data
query3 data something
query3 last data
Как создать цикл regexp, который ловит только первый экземпляр, найденный для каждого запроса, и распечатывает их? В этом случае результат будет:
query1 first data
query2 another data
query3 data something
Покушения код для получения выходного сигнала
set readFile1 [open file1.txt r]
while { [gets $readFile1 data] > -1 } {
for { set n 0 } { $n < [llength $list] } { incr n } {
if { [regexp "[lindex $list $n]" $data] } {
puts $data
}
}
}
close $readFile1
Я попытался с помощью цикла при чтении данных из файла, но это, кажется, поймать все даже если опция -all не используется.
Поиск строки запроса в строке с помощью оператора in is lik чтобы вызвать проблемы, если, например, строка не является надлежащим списком. Кроме того, если строка запроса является регулярным выражением, она, скорее всего, терпит неудачу. –
@PeterLewerin: Получил. Вызвали то же самое. – Dinesh