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

时间:2016-01-10 07:32:47

标签: string lua brackets lua-patterns

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

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

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

起初我试过

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

但是*是贪婪的,所以它抓住了整个方程式。

然后我试了

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

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

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

1 个答案:

答案 0 :(得分:5)

您正在寻找的是%b模式,它与平衡字符串相匹配。在此示例中,您可以使用%b()匹配以(开头的字符串,并以相应的)结尾:

equation:match("%b()")