正则表达式--递归匹配与非贪婪匹配

时间:2014-11-03 08:10:26
【文件属性】:

文件名称:正则表达式--递归匹配与非贪婪匹配

文件大小:10KB

文件格式:TXT

更新时间:2014-11-03 08:10:26

正则表达式 递归匹配 非贪婪匹配

1. 表达式的递归匹配   有时候,我们需要用正则表达式来分析一个计算式中的括号配对情况。比如,使用表达式 "\( [^)]* \)" 或者 "\( .*? \)" 可以匹配一对小括号。但是如果括号内还嵌有一层括号的话 ,如 "( ( ) )",则这种写法将不能够匹配正确,得到的结果是 "( ( )" 。类似情况的还有HTML 中支持嵌套的标签如 " " 等。本节将要讨论的是,想办法把有嵌套的的成对括号或者成对标签匹配出来。   匹配未知层次的嵌套:   有的正则表达式引擎,专门针对这种嵌套提供了支持。并且在栈空间允许的情况下,能够支持任意未知层次的嵌套:比如 Perl,PHP,GRETA 等。在 PHP 和GRETA 中,表达式中使用 "(?R)" 来表示嵌套部分。


网友评论

  • 很好的正则表达式学习材料,对使用正则表达式的人比较有用
  • 不错,还是有一些用处,谢谢
  • 顶起支持,又学习不少了
  • 很好,新手刚学正则表达式,贪婪匹配和非贪婪匹配的区别以前还不知道呢