正则表达式计算双方的字符

时间:2018-06-04 18:44:12

标签: c# regex

我不完全确定标题是否有任何意义,但我不确定如何更好地解释。我正在尝试匹配以一个或多个(开头的字符串,并以相同数量的)结束。我尝试了很多不同的东西,但我无法弄清楚如何在正则表达式中做到这一点,或者它是否可能!任何人都可以向我发送正确的方向吗?

实施例

匹配:(a)

匹配:((a))

不匹配:((a)

不匹配:((a)))

等等,你明白了。

1 个答案:

答案 0 :(得分:0)

您可以使用堆栈数据结构相对轻松地完成此操作。您逐个字符处理字符串,并在遇到(时推送,并在遇到)时弹出。如果在字符串处理结束时,您已使用空堆栈到达,则字符串有效。否则,如果你遇到空堆栈')',那么该字符串无效。

要计算,只需保持堆栈最大尺寸的变量即可。