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