论坛首页 综合技术论坛

如何用正则表达式检测文本中的不匹配的括号

浏览 4585 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-29  
譬如,在一行文本中,
((A== B) || (C==D)

如何检测出这种括号的不匹配额呢,请教一下各位大兄弟?
   发表时间:2007-10-30  
这个正则表达式还真不会。
稍微麻烦一点的办法是
使用栈来处理这个问题。
遇见(压栈,遇见)检查栈顶,如果是( ,则 (出栈.扫描结束
如果栈非空则说明存在不匹配,如果需要支持不匹配的行已经位置信息。
构造一个数据结构或者类,压栈就好了。
0 请登录后投票
   发表时间:2007-10-31  
如果我告诉你,可以证明正则表达式无法识别检测这种情况,你会不会觉得意外?
0 请登录后投票
   发表时间:2007-11-01  
数一下左括号和右括号的个数,不等就不匹配
0 请登录后投票
   发表时间:2007-11-01  
birdjavaeye 写道
数一下左括号和右括号的个数,不等就不匹配

())(
0 请登录后投票
   发表时间:2007-11-02  
myaniu 写道
这个正则表达式还真不会。
稍微麻烦一点的办法是
使用栈来处理这个问题。
遇见(压栈,遇见)检查栈顶,如果是( ,则 (出栈.扫描结束
如果栈非空则说明存在不匹配,如果需要支持不匹配的行已经位置信息。
构造一个数据结构或者类,压栈就好了。


还不如用一个int值,初始为0,遇(加1,遇)减1
如果中间出现负值或最终结果不为0则不匹配。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics