视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python之re操作实例教程
2020-11-27 14:23:59 责编:小采
文档


1.re.search():search返回的是查找结果的对象(按顺序找到第一个成功匹配的结果后就不往后查找了,没有查找到返回None),可以使用group()或groups()方法得到匹配成功的字符串。

  ①group()默认返回匹配成功的整个字符串(忽略pattern中的括号),也可以指定返回匹配成功的括号中第几个字符串(从1开始计数);

  ②groups()以元组的形式返回匹配成功的pattern中括号中的内容,若pattern中没有括号,则返回成功匹配的字符串对应的空元组。

 1 >>> string = 'python' 2 >>> import re 3 >>> result = re.search(r'(yt)h(o)', string) 4 >>> result 5 <_sre.SRE_Match object at 0x000000000293DE88> 6 >>> result.group() 7 'ytho' 8 >>> result.group(0) # 参数0无效 9 'ytho'10 >>> result.group(1) # 从1开始计数11 'yt'12 >>> result.group(2)13 'o'14 >>> result.groups()15 ('yt', 'o')16 >>> result.groups(0) # 传入参数无效17 ('yt', 'o')18 >>> result.groups(1)19 ('yt', 'o')20 >>>

2. re.finditer():返回全部查找结果的迭代器(若没有匹配成功的字符串,则返回一个空的迭代器),每个迭代对象同样可以使用group()和groups()获取成功匹配的结果。

 1 >>> string = 'one11python, two22, three33python ' 2 >>> result = re.finditer(r'(d+)(python)', string) 3 >>> for p in result: 4 print(p.group()) 5 6 7 11python 8 33python 9 >>> for p in result:10 print(p.group(2))11 12 13 python14 python15 >>> for p in result:16 print(p.groups()) # 若是pattern中没有括号,则返回的是每个迭代器对应的空元组。17 18 19 ('11', 'python')20 ('33', 'python')

3. re.findall():以列表的形式返回查找到的全部字符串(若没有查找到能成功匹配的字符串,则返回空的列表)。

1 >>> string = 'one11python, two22, three33python '2 >>> result = re.findall(r'd+python', string)3 >>> result4 ['11python', '33python']5 >>> result = re.findall(r'(d+)(python)', string)6 >>> result7 [('11', 'python'), ('33', 'python')]

下载本文
显示全文
专题