如何在Lua中转义变量

gre*_*ven 2 lua escaping pattern-matching

有没有办法逃脱Lua中的整个变量?喜欢:

local blah = some_pattern
string.gsub(blah, "-", "%-")
Run Code Online (Sandbox Code Playgroud)

变量"blah"发生变化,并在另一个模式匹配中的其他地方使用.每当"blah"中有一个魔法字符时,第二个模式匹配(在其他地方完成)就会失败.

所以我需要处理至少逃避各种魔法角色,"哇".

提前致谢!

lhf*_*lhf 8

最简单的方法是逃避所有标点字符而不用担心魔术字符:

newpattern = string.gsub(pattern, "%p", "%%%1")
Run Code Online (Sandbox Code Playgroud)