Lua - 如何删除字符串中整数的引号

时间:2012-09-19 12:20:35

标签: string 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"));

但它不起作用。 :(

1 个答案:

答案 0 :(得分:2)

Lua没有像Perl那样的正则表达式,相反,它确实有patterns。这些是相似的,但有一些差异。

不需要分隔斜杠/ /,并且转义字符为%但不是\。否则,您的试用基本上是正确的:

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

其中str是包含输入字符串的变量。另请注意,string.gsub会返回 2 值,这两个值都会打印,第二个结果是替换次数。使用额外的一对括号仅保留第一个结果。

您可以使用冒号:运算符简化一些表示法:

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