我只是想知道是否可以在Lua中将变量放入模式匹配中。类似于以下内容:
var = "hello"
pattern = string.match(datasource, "(var)%s(a%+)")
我需要这样做的原因是因为变量“var”会定期更改。 (它会循环)
提前干杯
答案 0 :(得分:9)
Lua不会在引号内处理字符串插值。相反,您需要将部分与var连接为var引用,其余部分连接为引用字符串。
"("..var..")%s(a%+)"
以“(”作为字符串文字开头,连接变量,然后用字符串文字完成字符串的其余部分。
答案 1 :(得分:5)
改为使用"("..var..")%s(a%+)"
。
答案 2 :(得分: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