正则表达式-分组
捕获分组
常用分组构造形式 | 说明 |
---|---|
(pattern) | 非命名捕获。捕获匹配的子字符串。编号为0的第一个捕获是由整个正则表达式模式匹配的文本,其它捕获结果则根据左括号的顺序从1开始自动编号 |
(?<name>pattern) | 命名捕获。将匹配的字符串捕获到一个组名称或编号中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。使用时用 \\k<name>方式使用 |
捕获异常可以通过\\下标
的方式引用分组的值
如果在表达式外部可以通过$下标
的方式引用
非捕获分组
常用分组构造形式 | 说明 |
---|---|
(?:pattern) | 匹配pattern但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于“or”字符(|)组合模式部件的情况很有用。例如“industr(?:y|ies)”是比“industry|industries”更经济的表达式 |
(?=pattern) | 它是一个非捕获匹配。例如:“Windows(?=95|98|nt|2000)”匹配Windows2000中的Windows,但不匹配Windows3.1中的Windows |
(?!pattern) | 该表达式匹配不处于pattern的字符串的起始点的搜索字符串。它是一个非捕获匹配。例如:“Windows(?!95|98|nt|2000)”匹配Windows3.1中的Windows,但不匹配Windows2000中的Windows |