所以我有这个字符串:
{"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"));
但它不起作用。 :(
答案 0 :(得分:2)
Lua没有像Perl那样的正则表达式,相反,它确实有patterns。这些是相似的,但有一些差异。
不需要分隔斜杠/ /
,并且转义字符为%
但不是\
。否则,您的试用基本上是正确的:
print(string.gsub(str, '"(%d+)"', "%1"))
其中str
是包含输入字符串的变量。另请注意,string.gsub
会返回 2 值,这两个值都会打印,第二个结果是替换次数。使用额外的一对括号仅保留第一个结果。
您可以使用冒号:
运算符简化一些表示法:
print((str:gsub('"(%d+)"', "%1")))