源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 420|回复: 18

[正则表达式] 正则 捕获组(capture group)

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2009-7-24 16:12:59 | 显示全部楼层 |阅读模式
捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或手动命名的组里,方便后面引用 捕获组有两种形式 一种是普通的捕获组,不产生歧义的情况下,后面简称捕获组,语法规则:(expression); 另一种是命名捕获组,语法规则:(?<name>expression)或者(?'name'expression),这两种写法是等价的。   1、编号规则 如果没有显式为捕获组命名,即没有使用命名捕获组,那么需要按数字顺序来访问所有捕获组 在只有普通捕获组的情况下,捕获组的编号是按照“(”出现的顺序,从左到右编号的    (\d{4})-(\d{2}-(\d\d)) 1        1 2          3    3 2   上面的正则表达式可以用来匹配格式为yyyy-MM-dd的日期,为了在下表中得以区分,采用了\d{2}和\d\d两种写法 还有一个默认编号为0的组,表示的是正则表达式的整体 用以上正则表达式匹配字符串:2008-12-31 匹配结果为:
编号 命名 捕获组 匹配内容
0   (\d{4})-(\d{2}-(\d\d)) 2008-12-31
1   (\d{4}) 2008
2   (\d{2}-(\d\d)) 12-31
3   (\d\d) 31
  如果对组进行了显式命名,即命名捕获组,那么捕获的内容可以通过组名称来引用 但是如果正则表达式中既使用了普通捕获组,也使用了命名捕获组,那么捕获组的编号就要特别注意,编号的规则是先对普通捕获组进行编号,再对命名捕获组进行编号   (\d{4})-(?<date>\d{2}-(\d\d)) 1        1 3                       2     23   用以上正则表达式匹配字符串:2008-12-31 匹配结果为:
编号 命名 捕获组 匹配内容
0   (\d{4})-(\d{2}-(\d\d)) 2008-12-31
1   (\d{4}) 2008
2   (\d\d) 31
3 date (?<date>\d{2}-(\d\d)) 12-31
    2、捕获组的引用 对捕获组的引用一般有以下几种 a) 正则表达式中,对前面捕获组捕获的内容进行引用,称为反向引用 b) 正则表达式中,(?(表达式)true|false)的条件表达式 c) 在程序中,对捕获组捕获内容的引用   反向引用 对于普通捕获组的引用,语法规则为:\k<num>,通常简写为\num,其中num是十进制的数字,即捕获组的编号 对于命名捕获组的引用,语法规则为:\k<name>或者\k'name'
回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-1-17 21:15:23 | 显示全部楼层
挺不错的东西
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-4-4 18:28:15 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2023-9-9 19:24:38 | 显示全部楼层
66666666666
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2023-11-24 17:31:17 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-5 00:14:12 | 显示全部楼层
下载来瞧瞧
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

294

积分

中级会员

Rank: 3Rank: 3

积分
294
发表于 2024-5-22 23:59:05 | 显示全部楼层
需要很久了终于找到了
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2024-5-26 06:02:22 | 显示全部楼层
终于找到了,我擦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-12 13:47:17 | 显示全部楼层
这个源码还可以
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

182

积分

注册会员

Rank: 2

积分
182
发表于 2024-8-14 10:27:30 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-15 06:42 , Processed in 0.087471 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表