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



这里有一个简单的例子,比如我有一个类似的方程

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

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

起初我尝试了

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

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

然后我尝试了

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

-是懒惰的,它捕获了"((5*2)"

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

您想要的是%b模式,它匹配平衡字符串。在本例中,可以使用%b()来匹配以(开头、以相应的):结尾的字符串

equation:match("%b()")

最新更新