我不完全确定标题是否有任何意义,但我不确定如何更好地解释。我正在尝试匹配以一个或多个(
开头的字符串,并以相同数量的)
结束。我尝试了很多不同的东西,但我无法弄清楚如何在正则表达式中做到这一点,或者它是否可能!任何人都可以向我发送正确的方向吗?
实施例
匹配:(a)
匹配:((a))
不匹配:((a)
不匹配:((a)))
等等,你明白了。
答案 0 :(得分:0)
您可以使用堆栈数据结构相对轻松地完成此操作。您逐个字符处理字符串,并在遇到(
时推送,并在遇到)
时弹出。如果在字符串处理结束时,您已使用空堆栈到达,则字符串有效。否则,如果你遇到空堆栈')',那么该字符串无效。
要计算,只需保持堆栈最大尺寸的变量即可。