正则表达式-分组

正则表达式-分组

起男 1,055 2021-06-28

正则表达式-分组

捕获分组

常用分组构造形式说明
(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