我是 Lua 库的新手,我有一个用例,我必须删除特定参数及其值: 例如:
字符串 1:?xyz=true&toekn=4234dadsasda
字符串 2:?toekn=4234dadsasda&test=pass
删除 token 及其值后需要这样的输出
字符串 1 : ?xyz=true
字符串 2:?test=pass
我尝试了下面的 Lua gsub 函数,但没有成功:
string.gsub(args, "token=.*", "")
如有任何帮助,谢谢
最佳答案
您可能需要考虑其他条件(使用 &
和 ;
作为分隔符 [1])和极端情况(尾随分隔符和子字符串与 token
):
text:gsub("([&;]?)%f[%a]token=[^&;]+([&;]?)",
function(s1, s2) return s1 and s2 and #(s1..s2) > 1 and s1 or "" end)
此解决方案适用于包含 subtoken
等参数的查询字符串并且使用 ;
作为分隔符。该模板正在使用 %f[%a]
,这是一个 frontier pattern描述了一个零长度边界,其中非字母变为字母(这包括字符串中的第一个字符)。
[1] W3C 建议除了 & 符号分隔符之外,所有 Web 服务器都支持分号分隔符,以允许 HTML 文档中 URL 中的 application/x-www-form-urlencoded 查询字符串,而无需实体转义 & 符号 ( wikipedia article on query string )。
关于regex - 需要从 url 中删除特定参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66324427/