所以这里有一个简单的例子,比如我有一个类似
的等式local equation = "((5*2)+3)-(3^5)"
我想捕获"((5*2)+3)"
起初我试过
equation:match("%((.*)%)")
但是*
是贪婪的,所以它抓住了整个方程式。
然后我试了
equation:match("%((.-)%)")
但是-
是懒惰的,它捕获了"((5*2)"
显然我错了。我应该如何用字符串模式捕获括号?
答案 0 :(得分:5)
您正在寻找的是%b
模式,它与平衡字符串相匹配。在此示例中,您可以使用%b()
匹配以(
开头的字符串,并以相应的)
结尾:
equation:match("%b()")