Lua: 在string.gsub中转义字面量%和捕获%2

我有一个基本问题,但是我已经试了很久,还是不行。

我正在处理URL,需要进行一个简单的替换。

我需要将空格替换为字面字符串%20,但是我似乎无法转义%或被报告为无效捕获的%2

text = string.gsub(text, "%s+", '%%20')

我在gsub中使用多少个来转义符号和%2捕获。

原文链接 https://stackoverflow.com/questions/7210581

点赞
stackoverflow用户596285
stackoverflow用户596285

似乎对我有效:

> text = "hello world"
> print(string.gsub(text, "%s+", '%%20'))
hello%20world   1

您需要展示更多的代码和错误信息。

2011-08-26 21:29:14
stackoverflow用户308010
stackoverflow用户308010

或者,您可以使用以下方法自动执行:

url = require("socket.url")
text = url.escape(string) 

当然,这是假设您已经在 Lua 路径中具有 socket 库。说实话,这是我处理 Url 的方法,因为您不必担心将逗号转换为 %2c 或将撇号转换为 %27。

2011-08-29 04:07:25