首页 > 其他 > 详细

re模块

时间:2018-08-12 18:04:41      阅读:145      评论:0      收藏:0      [点我收藏+]

re模块就是让我们能用正则表达式的语法去操作字符串。

正则表达式是一种小型的、高度专业化的编程语言。正则表达式被编译成一系列的字节码,然后由C编写的匹配引擎执行。

关于正则的语法,看我的另一篇博客:https://www.cnblogs.com/kuxingseng95/p/9461424.html

re模块的常用方法:

import re

# 1.findall,返回所有满足匹配条件的结果,放在列表里
print(re.findall(a., adfjsac))      # [‘ad‘, ‘ac‘]
# 2,search,函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
print(re.search(a+, bbbbbbbb))      # None
print(re.search(b+, "bbbbbbbb"))      # <_sre.SRE_Match object; span=(0, 8), match=‘bbbbbbbb‘>
print(re.search(b+, "bbbbbbbb").group())      # bbbbbbbb

# 3,match,同search,不过仅在字符串开始处进行匹配
print(re.match(a, abc).group())  # a
print(re.match(b, "abc"))         # None

# 4,split
ret = re.split([ab], abcd)  # 先按‘a‘分割得到‘‘和‘bcd‘,在对‘‘和‘bcd‘分别按‘b‘分割
print(ret)  # [‘‘, ‘‘, ‘cd‘]

# 5,sub,查找替换,返回替换后的值。第一个参数是正则,第二个参数是要替换为什么,第三个参数是要查找替换的字符串,第四个参数是要替换的个数。
ret = re.sub(\d, abc, aaa5bbb6, 1)
print(ret)  # aaaabcbbb6
ret = re.subn(\d, abc, aa5bbb6)       # subn会多返回一个参数,就是匹配到的次数
print(ret)  # (‘aaabcbbbabc‘, 2)

# 6,compile,写好匹配规则,然后可以使用其他的方法。
obj = re.compile(\d{3})
ret1 = obj.search(abc123eeee)
print(ret1.group())  # 123
ret2 = obj.findall(abc123eeee)
print(ret2)     # [‘123‘]

# 7,迭代器方式查找,当数据量较大的时候适合
ret = re.finditer(\d, ds3sy4784a)
print(ret)  # <callable_iterator object at 0x10195f940>

print(next(ret).group())    # 3
print(next(ret).group())    # 4

 

re模块

原文:https://www.cnblogs.com/kuxingseng95/p/9462314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!