常用分组语法
你也可以自己指定子表达式的 组名 。要指定一个子表达式的组名,请使用这样 的语法: (?<Word>\w ) (或者把尖括号换成 ' 也行: (?'Word'\w ) ),这样就把 \w 的组 名指定为 Word 了。要反向引用这个分组 捕获 的内容,你可以使用 \k<Word> ,所以上 一个例子也可以写成这样: \b(?<Word>\w )\b\s \k<Word>\b 。
使用小括号的时候,还有很多特定用途的语法。下面列出了最常用的一些
表4.常用分组语法
分类 代码/语法 说明 |
||
(exp) 匹配exp,并捕获文本到自动命名的组里 |
||
捕获 |
(? <name>exp) |
匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
||
零宽断 言 |
(?=exp) 匹配exp前面的位置 |
|
(?<=exp) 匹配exp后面的位置 |
||
(?!exp) 匹配后面跟的不是exp的位置 |
||
(?<!exp) 匹配前面不是exp的位置 |
||
注释 |
(?#comment) |
这种类型的分组不对正则表达式的处理产生任何影响,用于提供注 释让人阅读 |