Lua gsub chars';(';和';)';失败

Lua gsub chars';(';和';)';失败,lua,gsub,lua-patterns,Lua,Gsub,Lua Patterns,由于某些原因,只有打开和关闭支架不起作用,所有其他支架都可以 RequestEncoded = string.gsub(RequestEncoded, '<', ' ') RequestEncoded = string.gsub(RequestEncoded, '>', ' ') RequestEncoded = string.gsub(RequestEncoded, '"', ' ') RequestEncoded = string.gsub(RequestEncoded, '\'

由于某些原因,只有打开和关闭支架不起作用,所有其他支架都可以

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', ' ')
RequestEncoded=string.gsub(RequestEncoded,“”,“”)
RequestEncoded=string.gsub(RequestEncoded,“”,“”)
RequestEncoded=string.gsub(RequestEncoded,'\'','')
RequestEncoded=string.gsub(RequestEncoded,'\\','')
--RequestEncoded=string.gsub(RequestEncoded,“(”,“”)不断失败
--RequestEncoded=string.gsub(RequestEncoded,'),“”)
--RequestEncoded=string.gsub(RequestEncoded,“\x28”,”)--不断失败
--RequestEncoded=string.gsub(RequestEncoded,“\x29”,”)
--RequestEncoded=string.gsub(RequestEncoded,'\050','')--不断失败
--RequestEncoded=string.gsub(RequestEncoded,'\051','')
是在Lua模式中形成捕获组的特殊字符

当它们位于方括号(
[…]
)之外时,需要对它们进行转义,以匹配文字括号。需要使用
%
对它们进行转义

string.gsub(RequestEncoded, '%(', ' ')
string.gsub(RequestEncoded, '%)', ' ')
但是,由于在所有后续的
gsub
调用中使用相同的替换模式,因此可以将代码简化为

RequestEncoded = string.gsub(RequestEncoded, '[<>"\'\\()]', ' ')
RequestEncoded=string.gsub(RequestEncoded,“[”\'\\\()]”,“)
注意,这里,
()
位于括号表达式中,不需要转义

见文件:

一些被称为魔法字符的字符在模式中使用时具有特殊的含义

()。%+-*?[^$