2011-07-14 515 views
5

我只是想知道是否有可能在Lua模式匹配中放置一個變量。像下面這樣的東西:lua模式匹配變量

var = "hello" 
pattern = string.match(datasource, "(var)%s(a%+)") 

我需要這樣做的原因是因爲變量「var」會週期性地改變。 (這將是一個循環)提前

回答

9

Lua不處理引號內的字符串插值。相反,您需要將部分與var連接爲var引用,其餘部分爲引用字符串。

"("..var..")%s(a%+)"開始用「(」作爲一個字符串文字,串接變量,然後結束的字符串的其餘部分用於字符串。

5

使用"("..var..")%s(a%+)"代替

乾杯。

1

我需要,我認爲同樣的事情,一個變量的模式但是上面的解決方案並不適用於我,我發佈了我的解決方案,以防萬一有人幫助,沒有在網上找到任何其他的東西,

我讀了':'分隔文件名字:tel),並且想要在文件中按姓名搜索,並將姓名和電話號碼作爲答案。

local FileToSearch = h:read'*a' -- Read all the file 
var = io.read() -- ask the name 
string.gmatch(FileToSearch, ''..var..': '..'%d+') -- search for name, concatenate with number