提问者:小点点

正则表达式两边计数字符[重复]


我不完全确定这个标题是否有意义,但我不确定如何更好地解释。我正在尝试匹配一个字符串,该字符串以一个或多个,以相同数量的)结尾。。我尝试了许多不同的方法,但我不知道如何在regex中执行此操作,或者是否可能!有人能把我送到正确的方向吗?

例子

匹配:(a)

匹配:((a))

不匹配:((a)

不匹配:((a))

等等,你明白了。


共1个答案

匿名用户

使用堆栈数据结构,您可以相对轻松地做到这一点。一个字符一个字符地处理字符串,遇到时按(,遇到时弹出)。如果在字符串处理结束时到达时堆栈为空,则该字符串是有效的。否则,如果堆栈为空,则字符串无效。

要计数,只需保持堆栈将达到的最大大小的变量。