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