我需要在我正在編寫的程序中迭代一些字符串對。而不是把字符串對中大的一個表中,表,我把他們都在一個單一的字符串,因爲我覺得最終的結果是更易於閱讀:我可以創建一個返回可變數值的gmatch模式嗎?
function two_column_data(data)
return data:gmatch('%s*([^%s]+)%s+([^%s]+)%s*\n')
end
for a, b in two_column_data [[
Hello world
Olá hugomg
]] do
print(a .. ", " .. b .. "!")
end
輸出,你會想到什麼:
Hello, world!
Olá, hugomg!
然而,正如其名稱所示,該two_column_data
功能只有在有兩個數據的確切列的作品。我怎樣才能使它適用於任何數量的列?
for x in any_column_data [[
qwe
asd
]] do
print(x)
end
for x,y,z in any_column_data [[
qwe rty uio
asd dfg hjk
]] do
print(x,y,z)
end
如果必要,我可以使用lpeg來完成此任務。
'函數k_column_data(K,數據) 返回數據:gmatch(( '%S *(%S +)'):代表(k))的 end' –
@葉戈爾我認爲重點是他不知道嗷嗷什麼「K」將 – warspyking
OP,我認爲這應該工作:第一捕獲每個整條生產線,然後捕捉每一個字,把話說在一個表中,並解壓縮在返回 – warspyking