这里有一个简单的例子,比如我有一个类似的方程
local equation = "((5*2)+3)-(3^5)"
我想捕获"((5*2)+3)"
起初我尝试了
equation:match("%((.*)%)")
但是*
是贪婪的,所以它捕获了整个等式。
然后我尝试了
equation:match("%((.-)%)")
但-
是懒惰的,它捕获了"((5*2)"
很明显,我做错了。我应该如何用字符串模式捕获括号?
您想要的是%b
模式,它匹配平衡字符串。在本例中,可以使用%b()
来匹配以(
开头、以相应的)
:结尾的字符串
equation:match("%b()")