模式匹配中的lua变量

时间:2011-07-14 11:19:45

标签: variables lua pattern-matching design-patterns

我只是想知道是否可以在Lua中将变量放入模式匹配中。类似于以下内容:

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

我需要这样做的原因是因为变量“var”会定期更改。 (它会循环)

提前干杯

3 个答案:

答案 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