Lua - 如何移除字符串中整数周围的引号

我有一个字符串:

{"scores":{"1":["John",60],"2":["Jude",60],"3":["Max",60],"4":["Kyle",60],"5":["Smith",60],"6":["Mark",50],"7":["Luke",40],"8":["Anne",30],"9":["Bruce",20],"10":["kazuo",10]}}

有一些整数周围有引号,我想摆脱它们。我该怎么做?我已经尝试了:

print(string.gsub(string, '/"(\d)"/', "%1"));

但它不起作用。 :(

点赞
用户1008957
用户1008957

Lua 没有像 Perl 一样的 _正则表达式_,但它确实有模式。这些模式类似,但也有一些区别。

它们不需要前后定界符,没有斜杠 / /,而是使用 % 作为转义字符,而不是 \。否则,你的尝试基本上是正确的:

print(string.gsub(str, '"(%d+)"', "%1"))

这里的 str 是包含输入字符串的变量。另外请注意,string.gsub 函数会返回 2 个值,都会被打印出来,第二个结果是替换的次数。如果只想要第一个结果,可以使用一对额外的括号。

可以使用冒号 : 操作符简化一下符号:

print((str:gsub('"(%d+)"', "%1")))
2012-09-19 13:05:14