gpt4 book ai didi

Lua gsub 字符 '(' 和 ')' 失败

转载 作者:行者123 更新时间:2023-12-02 09:10:50 25 4
gpt4 key购买 nike

由于某种原因,只有左括号和右括号不起作用,其他都很好。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com