正则表达式 - 分组语法(捕获/断言/注释)
在书写正则表达式时,通常情况下,我们有两种场景会使用到分组。
一是:对一个子表达式进行重复;
二是:想要获取到子表达式匹配到的内容。
正则中分组通过小括号()
来表达,它是通过从左到右计算其开括号来进行编号的。
分类 | 代码/语法 | 说明 |
---|---|---|
捕获 | (exp) |
匹配exp,并捕获文本到自动命名的组里 |
捕获 | (?<name>exp) |
匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
捕获 | (?:exp) |
匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
断言 | (?=exp) |
匹配exp前面的位置 |
断言 | (?<=exp) |
匹配exp后面的位置 |
断言 | (?!exp) |
匹配后面跟的不是exp的位置 |
断言 | (?<!exp) |
匹配前面不是exp的位置 |
注释 | (?#comment) |
这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读 |