2011-07-14 209 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