由于某种原因,只有左括号和右括号不起作用,其他都很好。
RequestEncoded = string.gsub(RequestEncoded, '<', ' ')
RequestEncoded = string.gsub(RequestEncoded, '>', ' ')
RequestEncoded = string.gsub(RequestEncoded, '"', ' ')
RequestEncoded = string.gsub(RequestEncoded, '\'', ' ')
RequestEncoded = string.gsub(RequestEncoded, '\\', ' ')
-- RequestEncoded = string.gsub(RequestEncoded, '(', ' ') keeps failing
-- RequestEncoded = string.gsub(RequestEncoded, ')', ' ')
-- RequestEncoded = string.gsub(RequestEncoded, "\x28", " ") --keeps failing
-- RequestEncoded = string.gsub(RequestEncoded, "\x29", ' ')
-- RequestEncoded = string.gsub(RequestEncoded, '\050', ' ') --keeps failing
-- RequestEncoded = string.gsub(RequestEncoded, '\051', ' ')
最佳答案
)
和 (
是在 Lua 模式中形成捕获组的特殊字符。
当它们位于方括号 [...]
之外时,您需要对其进行转义,以匹配文字括号。您需要使用 %
转义它们。
string.gsub(RequestEncoded, '%(', ' ')
string.gsub(RequestEncoded, '%)', ' ')
但是,由于您在所有后续 gsub
调用中使用相同的替换模式,因此您可以将代码简化为
RequestEncoded = string.gsub(RequestEncoded, '[<>"\'\\()]', ' ')
请注意,这里的 ()
位于括号表达式内,不需要转义。
参见Lua patterns文档:
Some characters, called magic characters, have special meanings when used in a pattern. The magic characters are
( ) . % + - * ? [ ^ $
关于Lua gsub 字符 '(' 和 ')' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52400416/