1, 正则表达式如何处理嵌套结构
a. .net处理嵌套结构的方法
举例说明:
问题描述:从before (nope (yes (here) okay) after中匹配得到最大的被”()”包含的文本。即显示红色的部分。
答案:.net:/((?>[^()]+|/((?<DEPTH>)|/)(?<-DEPTH>))*(?(DEPTH)(?!))/)
分析:
(1)、/(匹配左括号;/)匹配右括号;[^()]+匹配非括号字符串
(2)、(?>….)固化分组,固化分组的作用在于:一旦括号内的子表达式匹配之后,匹配的内容就固定下来,在接下来的匹配过程中不会改变,除非整个固化分组的括号都被弃用,在外部回溯中重新应用。该处使用固化分组的作用在于提高匹配速度。