正则表达式中的捕获和反向引用笔记

捕获组可以捕获正则表达式中的字符模式,并且由正则表达式后面的编号或名称来引用改模式。

()——用来捕获其中的字符串
\数字——用编号来引用
eg. 正则表达式 (\w)(\w)\2\1 可匹配字符串abba

注意: 1.反向引用用来匹配html标签非常有效如<(\w+)></\1>可以匹配<table></table>等类似格式的标签。

            2.默认情况下,只要使用圆括号,就会捕获圆括号内所包含的字符,可以使用n选项来禁用这个默认行为(在第7条里会详细介绍),或者添加?:到圆括号中。eg.                  (?:sophia)或(?n:sophia)此时不会捕获sophia。

    (?<捕获组名称>)\k<捕获组名称>——用名称来引用

eg.

正则表达式(?<sophia>\w)abc\k<sophia> 可匹配字符串 xabcx

注意:在替换模式中使用捕获组的格式略有不同,要用$1、$2等来按数值引用捕获,用${sophia}等名称来按名称引用捕获组

分组构造 描述 模式 匹配
( subexpression ) 捕获匹配的子表达式并将其分配到一个从零开始的序号中 |(\w)\1 "deep" 中的 "ee"

官方文档参考组的概念

posted @ 2018-06-28 20:38  tuohaibei  阅读(647)  评论(0编辑  收藏  举报