方法使用

1. compile(正则表达式) - 编译创建正则表达式对象
re_obj = re.compile(r'\d{3}')
re_obj.fullmatch('234') re.fullmatch(r'\d{3}', '345')
  • a.获取匹配结果:

    匹配对象.group() - 获取整个正则表达式匹配到的结果

    匹配对象.group(N) - 获取第N分组匹配到的结果

  • b.获取匹配结果在原字符串中的范围

    匹配对象.span()

  • c.获取原字符串

    匹配对象.string

print(result.group())   # 234hksj
print(result.group(1)) # 234
print(result.group(2)) # hksj print(result.span()) # (0, 7)
print(result.span(2)) # (3, 7) print(result.string) # 234hksj
2. fullmatch(正则表达式, 字符串) - 让正则表达式和整个字符串进行匹配;如果匹配成功返回匹配对象,匹配失败返回None
result = re.fullmatch(r'(\d{3})([a-z]{4})', '234hksj')
print(result)
3.match(正则表达式, 字符串) - 让字符串开头和正则表达式进行匹配; 返回值是匹配对象或者None
print(re.match(r'\d{3}', '789佳的说法0023-==='))
print(re.match(r'\d{3}abc', '345ABC就开始大锅饭', flags=re.I))
4.search(正则表达式, 字符串) - 在字符串中查找第一个满足正则表达式的子串;返回值是匹配对象或者None
print(re.search(r'\d{3}', '时代峰峻34890shh==23992课时费'))
5.findall(正则表达式,字符串) - 获取字符串中所有满足正则表达式的子串;返回值是列表,列表中的元素是字符串
print(re.findall(r'\d+', '安抚348净宽度34920skdsf45烧开后09823hsd3sd89'))
6.finditer(正则表达式,字符串) - 获取字符串中所有满足正则表达式的子串; 返回值是迭代器,迭代器中的元素是匹配对象
result = re.finditer(r'(\d+)([a-z]{2})', '安抚348净宽度34920skdsf45烧开后09823hsd3sd89')
print(list(result))
7.split(正则表达式,字符串) - 以正则表达式匹配到的子串作为切割点,对字符串进行切割; 返回值是列表,列表中的元素是字符串
result = re.split(r'\d+', '暗红色的83大黄金黄色的9罚款0233s闪电发货890')
print(result) # ['暗红色的', '大黄金黄色的', '罚款', 's闪电发货', '']
8.sub(正则表达式,字符串1,字符串2) - 将字符串2中满足正则表达式的子串全部替换成字符串1;返回值是替换后的字符串
result = re.sub(r'\d+', 'and', '暗红色的83大黄金黄色的9罚款0233s闪电发货890')
print(result)
9.参数flags

以上所有的函数都有一个参数flags, 可以加re.I表示匹配的时候忽略大小写;加re.S表示单行匹配(默认是多行匹配re.M)

多行和单行的主要区别: 多行匹配.不能和\n进行匹配;单行.可以和\n进行匹配

print(re.fullmatch(r'a.b', 'a\nb'))   # None
print(re.fullmatch(r'a.b', 'a\nb', flags=re.S)) print(re.search(r'a.+b', '世纪东方anmb\n是否b大括号'))
print(re.search(r'a.+b', '世纪东方anmb\n是否b大括号', re.S))

附上整理的表格

最新文章

  1. iOS网络1——NSURLConnection使用详解
  2. pod
  3. JavaScript事件对象【转】
  4. linux下修改系统时间
  5. Android点击View显示PopupWindow,再次重复点击View关闭PopupWindow
  6. 超轻型响应jQuery旋转木马幻灯片插件anoSlide
  7. MongoDB学习之——安装
  8. 初步谈谈 C# 多线程、异步编程与并发服务器
  9. [COGS 2877]老m凯的疑惑
  10. HDFS(一) 高级特性
  11. Java scirpt简介
  12. LuoGu P1006 传纸条
  13. 负载均衡+session共享(memcached-session-manager实现)
  14. Robot Framework 入门教程总结
  15. Editplus中添加System.out.println()快捷键
  16. android linux 休眠 深度睡眠 查看 方法 调试【转】
  17. node(2) EventEmitter类 事件队列 事件和error事件方法
  18. Qt中的主窗口之菜单栏
  19. python面向对象高级:@property
  20. [XML] CoolFormat

热门文章

  1. JavaWeb包含哪些内容
  2. a minimum of subsistence
  3. 【pat】C++之刷题常用STL容器整理
  4. 探究JS V8引擎下的“数组”底层实现
  5. IDEA 护眼色设置
  6. 【Web开发】到底什么是短链接
  7. Fiddler使用过程中容易忽略的小技巧
  8. Ling to sql 多表查询,多个条件进行关联
  9. javascript模块化开发(二)
  10. 大话Git系列之初识版本控制系统(1)