如何从一个字符串中获取特定的字符串?LUA

所以我想从一个字符串中获取类似于这样的字符串:


local x = "define x = 2; output('Hello World')"
x:gsub("output%(PATTERN", function(c)
print(c)
end)

我只是想获取:"output('Hello World')",但我不知道如何使用模式。所以如果有人能告诉我这个,那就太好了。

原文链接 https://stackoverflow.com/questions/69404332

点赞
stackoverflow用户2858170
stackoverflow用户2858170

也许你的示例不是最好的。如果你已经知道你要查找的确切字符串,可以将该字符串用作模式。

所以假设你想知道 “output('Hello World')” 是否在 x 中,那么只需要使用 x:find("output('Hello World')") 就行了。

如果你只知道你的文本结构,模式就有用了。比如说,你想知道分配给 x 的数字是多少。

print(x:match("x = (%d+)"))

如果你不知道如何处理模式,请参阅Lua 手册

如果你有任何特定的模式不理解,或者无法想出与特定内容相匹配的模式,请随时在此处提问。

编辑:

获取输出参数的方法有多种方法。

print(x:match("output%((%b'')%)"))

print(x:match("output%b()"):match("%b''"))

print(x:match("output%((.+)%)"))

和其他方法

2021-10-01 10:54:03