字符串模式,匹配第一个,最外面的一对括号?

String pattern, match the first, outermost pair of brackets?

所以这是一个简单的例子,假设我有一个等式

local equation = "((5*2)+3)-(3^5)"

而且我想捕获"((5*2)+3)"

一开始我试过

equation:match("%((.*)%)")

但是*是贪心的,所以它捕获了整个等式。

然后我试了

equation:match("%((.-)%)")

但是-偷懒了,抓到了"((5*2)"

很明显我做错了。我应该如何用字符串模式捕获括号?

您要查找的是 %b 模式,它匹配平衡字符串。在本例中,您可以使用 %b() 匹配以 ( 开头并以对应的 ):

结尾的字符串
equation:match("%b()")