【问题标题】:Lua: Escaping literal % inside string.gsub and the capture %2Lua:在 string.gsub 和捕获 %2 中转义文字 %
【发布时间】:2011-11-04 20:26:11
【问题描述】:

基本问题,但我一直在尝试弄清楚,但没有运气。

我正在处理 url,需要做一个简单的替换。

我需要用文字字符串%20 替换空格,但我似乎无法逃脱报告为无效捕获的% 或%2

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

我必须在gsub 中使用多少个% 才能逃脱% 符号和%2 捕获。

【问题讨论】:

  • 你确定你输入的是%%20而不是%%%20

标签: lua escaping gsub lua-patterns


【解决方案1】:

似乎对我有用:

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

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

【讨论】:

  • 我的错误,我将替换的结果提供给 string.format() ,因此 % 字符当时正在拯救我。谢谢你的帮助。我将以下内容作为这个新手问题的参考。 pgl.yoyo.org/luai/i/string.gsub
【解决方案2】:

或者,您可以通过以下方式自动执行此操作:

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

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

【讨论】:

  • 哦,很好的信息,谢谢。我会 +1,但当天用完了。
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多