怎么把字符串中的某些字符串捞出来? LUA
How do you fish out certain strings in a string? LUA
所以我想从一个看起来像这样的字符串中找出一个字符串:
local x = "define x = 2; output('Hello World')"
x:gsub("output%(PATTERN", function(c)
print(c)
end)
我基本上想找出:“output('Hello World')”但是我不明白模式是如何工作的。所以如果有人能告诉我那就太好了
也许你的例子不是最好的。如果您已经知道要查找的确切字符串,请使用该字符串作为您的模式。
假设您想知道 "output('Hello World')"
是否在 x 中,它很简单 x:find("output('Hello World')")
如果您只知道文本的结构,模式就会派上用场。假设您想知道分配给 x 的数字。
print(x:match("x = (%d+)"))
如果您不知道如何使用模式,请参阅Lua manual。
如果有任何您不理解的特定模式,或者如果您不能想出一个模式来匹配特定的东西,请随时在这里提问。
编辑:
有多种方法可以获取输出参数。
print(x:match("output%((%b'')%)"))
print(x:match("output%b()"):match("%b''"))
print(x:match("output%((.+)%)"))
及其他
所以我想从一个看起来像这样的字符串中找出一个字符串:
local x = "define x = 2; output('Hello World')"
x:gsub("output%(PATTERN", function(c)
print(c)
end)
我基本上想找出:“output('Hello World')”但是我不明白模式是如何工作的。所以如果有人能告诉我那就太好了
也许你的例子不是最好的。如果您已经知道要查找的确切字符串,请使用该字符串作为您的模式。
假设您想知道 "output('Hello World')"
是否在 x 中,它很简单 x:find("output('Hello World')")
如果您只知道文本的结构,模式就会派上用场。假设您想知道分配给 x 的数字。
print(x:match("x = (%d+)"))
如果您不知道如何使用模式,请参阅Lua manual。
如果有任何您不理解的特定模式,或者如果您不能想出一个模式来匹配特定的东西,请随时在这里提问。
编辑:
有多种方法可以获取输出参数。
print(x:match("output%((%b'')%)"))
print(x:match("output%b()"):match("%b''"))
print(x:match("output%((.+)%)"))
及其他