脚本无法用 gsub 替换空格

我有一个 Lua 脚本,在试图用 %20 替换空格时会出现错误

text = "This is great"
text = string.lower(text)

output = text:gsub("%s", "%20")
print(output)

我想用 %20 替换这个字符串中的空格,但它会报错

点赞
用户1447225
用户1447225

百分号不仅在 gsub 的搜索模式中有特殊意义,而且在替换模式中也有。更具体地说,%2 表示“模式的第二个捕获组的内容”。如果您使用另一个百分号转义百分号,则会失去其特殊含义:

output = text:gsub("%s", "%%20")

然而... 似乎您正在尝试将字符串作为 URL 的一部分。URLencode/URLdecode 不仅仅是用 %20 替换空格,它是一个相当复杂的转换,在RFC3986中详细描述。值得使用第三方库进行操作。

2018-12-07 00:48:12