每個查詢的第一個實例我有一個包含一些值的列表變量:正則表達式循環找到TCL
lappend list {query1}
{query2}
{query3}
而且一些數據文件1相匹配的值,並將它們的部分上面
query1 first data
query1 different data
query1 different data
query2 another data
query2 random data
query3 data something
query3 last data
如何創建一個正則表達式循環,僅捕獲每個查詢的第一個實例並將其打印出來?在這種情況下,輸出將是:
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
我在閱讀該文件中的數據使用for循環試過,但它似乎捕捉所有值,即使沒有使用-all選項。
在使用in運算符的行中搜索查詢字符串是lik如果例如該行不是一個正確的列表,就會引起問題。另外,如果查詢字符串是正則表達式,則很可能會失敗。 –
@PeterLewerin:明白了。解決了同樣的問題。 – Dinesh