c# - 正则表达式计算两侧的字符
问题描述
我不完全确定标题是否有意义,但我不确定如何更好地解释。我正在尝试匹配以一个或多个(
's 开头并以相同数量)
's 结尾的字符串。我尝试了很多不同的东西,但我不知道如何在正则表达式中做到这一点,或者是否有可能!任何人都可以向我发送正确的方向吗?
例子
匹配:(a)
匹配:((a))
不匹配:((a)
不匹配:((a)))
等等等等,你明白了。
解决方案
您可以使用堆栈数据结构相对容易地做到这一点。你一个字符一个字符地处理字符串,遇到就push,遇到就(
pop )
。如果在字符串处理结束时您到达的堆栈为空,则该字符串是有效的。否则,如果您遇到带有空堆栈的 ')',则该字符串无效。
要计数,只需维护堆栈将达到的最大大小的变量。
推荐阅读
- python - 如何使用选定的空格 Python 分割字符串
- mysql - 转换 SQL 查询 XML -> JSON
- apache-spark - Spark 数据集:数据转换
- javascript - 如何解决:动作必须是普通对象。使用自定义中间件进行异步操作
- vue.js - 在 Vue.JS 中使用命名最佳实践,我应该使用 `template` 还是 `view`?
- css - 将函数返回的 CSS 添加到 IE11 的样式组件时未应用 CSS?
- ms-word - Office Word javascript API中的onScroll事件
- php - PHP关于进入MYSQL dbase的小写和大写条目
- azure - azure sql 的 azure 用户分配标识失败
- fix-protocol - 一个 FIX 消息被分成 02 个部分。如何链接这些损坏的 FIX 消息集以使其成为完整的 FIX 消息?