Lua:在 string.gsub 中转义文字 % 并捕获 %2

发布于 2024-12-01 15:44:45 字数 303 浏览 4 评论 0原文

基本问题,但我已经尝试了一段时间但没有运气。

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

我需要用文字字符串 %20 替换空格,但我似乎无法转义 % 或 %2 ,它们被报告为无效捕获。

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

我必须在 gsub 内部使用多少个 % 来转义 % 符号和 %2 捕获。

Basic question but I've been trying to figure out for a while with no luck.

I am processing urls and need to do a simple replacement.

I need to replace spaces with the literal string %20, but I can't seem to escape the % or the %2 which is reported as an invalid capture.

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

How many % do I have to use inside gsub to escape the % sign and the %2 capture.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷月断魂刀 2024-12-08 15:44:45

似乎对我有用:

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

您需要显示更多代码和错误消息。

Seems to work for me:

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

You'll need to show some more code and your error message.

﹎☆浅夏丿初晴 2024-12-08 15:44:45

或者,您可以使用以下命令自动执行此操作:

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

当然,假设您的 lua 路径中确实有套接字库。老实说,这就是我对 url 执行任何操作的方式,因为这样您就不必担心将逗号转换为 %2c 或将撇号转换为 %27。

Alternatively, you can automatically do that with the following:

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

This is, of course, assuming you do have the socket library in your lua path. To be quite honest, this is the way I would go about doing anything with urls, because then you don't have to worry about converting commas into %2c or apostrophes into %27.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文