分组、捕获
分组
使用(表达式)
对表达式进行分组,例如使用(\d{3}\.){2}
匹配下面例子中的数字:
- abc
123.456.
def
\d{3}
表示三个数字,(\d{3}\.)
表示三个数字加“.
”为一组,{2}
表示这一组内容重复两次
捕获
在对表达式进行分组的时候,会捕获文本到自动命名的组里,使用 \1 \2 ……
后向引用组
例如用([a-z]*)\ (\d*)
匹配下列文本,([a-z]*)
为\1
组,(\d*)
为\2
组
kardinal 1234567
使用\2\ \1
替换([a-z]*)\ (\d*)
,可以改变两个字符串的顺序
1234567 kardinal
如果分组较多,计数可能会不太方便,可以给分组指定名称,例如:
- (?<name>[a-z]*)\ (?<num>\d*)
- \k<num>\ \k<name> (?#使用“
\k<name>
”后向引用)
使用(?:表达式)
,则只是分组,而不捕获,下面例子中,(\d*)
为\1
组
(?:[a-z]*)\ (\d*)