0

所以我有这个字符串:

{"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"));

但它不起作用。:(

4

1 回答 1

2

Lua 没有像 Perl 这样的正则表达式,相反,它有模式。这些是相似的,但有一些不同。

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

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

str包含输入字符串的变量在哪里。另请注意,string.gsub返回2 个值,它们都被打印出来,第二个结果是替换的数量。使用一对额外的括号仅保留第一个结果。

您可以使用冒号运算符简化一点符号:

print((str:gsub('"(%d+)"', "%1")))
于 2012-09-19T13:05:14.773 回答