正则表达式 平衡组/递归匹配

平衡组用于匹配嵌套层次结构,常用于匹配HTML标签(当HTML内容不规范,起始标签和结束标签数量不同时,匹配出正确配对的标签),在此把表达式统一以\w为例。

  • (?'group'\w) 捕获的分组(\w匹配到的内容)命名为group,并压入堆栈
  • (?'-group'\w) 捕获分组(\w匹配到的内容)后,弹出group分组栈的栈顶内容(最后压入的捕获内容),堆栈本来为空,则本分组的匹配失败
  • (?(group)yes|no) 如果group栈非空匹配表达式yes,否则匹配表达式no
  • (?!) 零宽负向先行断言,由于没有后缀表达式,试图匹配总是失败


文章参考:https://www.w3cschool.cn/rxoyts/l17fcozt.html
posted @ 2017-09-11 09:00  keepgoon  阅读(1215)  评论(0编辑  收藏  举报