目录:

1.re-概述 https://mp.csdn.net/postedit/85156839
2.re-函数 https://mp.csdn.net/postedit/85156993
3.re-Pattern   https://mp.csdn.net/postedit/85157041
4.re-match https://mp.csdn.net/postedit/85157072
5.re-分组 https://mp.csdn.net/postedit/85157147
6.re-扩展符号 https://mp.csdn.net/postedit/85157297
7.re- 预定义字符 https://mp.csdn.net/postedit/85157352
8.re-修饰符 https://mp.csdn.net/postedit/85157464
9.re-实例 https://mp.csdn.net/postedit/85157513

分组 2018/12/20组的基础:
1) '('')' 组是由一对圆括号括起来的正则式。
2) findall 返回包含在 '()' 中内容,前和后面内容都匹配成功,却并不包含在结果中。
3) 子组从左到右从1向上编号可嵌套; 要确定数字,只需计算左括号的左括号字符。  

实例:

# 实例1:无命名组
s = 'aaa111aaa , bbb222 , 333ccc '     #匹配包夹在字母中间的数字
re.findall (r'[a-z]+(\d+)[a-z]+' , s ) # ['111']s='aaa111aaa,bbb222,333ccc,444ddd444,555eee666,fff777ggg'
re.findall( r'([a-z]+)\d+([a-z]+)' , s ) # 找出中间夹有数字的字母 # [('aaa', 'aaa'), ('fff', 'ggg')]
re.findall( r'[a-z]+(\d+)([a-z]+)' , s ) # 找出中间是数字后面是字母# [('111', 'aaa'), ('777', 'ggg')]# 实例2:命名组
m = re.search(r'(?P<word>\b\w+\b)', '(((( Lots of punctuation )))' )
m.group('word')# 'Lots'
m.group(1)     # 'Lots'# 实例3:非捕获
re.match("([abc])+", "abc").groups()     # ('c',)
re.match("(?:[abc])+", "abc").groups()   # 非捕获组无法检索组匹配内容 # ()s = 'I have a dog , I have a cat'
re.findall( r'I have a (?:dog|cat)' , s )# ['I have a dog', 'I have a cat']
re.findall( r'I have a dog|cat' , s )    # ['I have a dog', 'cat']  将 'I have a dog' 和 'cat' 当成两个规则# 实例4:反向引用-字符串替换时非常有用
p = re.compile(r'\b(\w+)\s+\1\b')                #RE检测字符串中的双字
p = re.compile(r'\b(?P<word>\w+)\s+(?P=word)\b') #等价
p.search('Paris in the the spring').group()      # 'the the're.findall( r '(?P<g1>[a-z]+)\d+(?P=g1)' , s )   # 找出被中间夹有数字的前后同样的字母# ['aaa']
re.findall( r'([a-z]+)\d+\1' , s )               # ['aaa']s='111aaa222aaa111 , 333bbb444bb33'              # 找出完全对称的 数字-字母
re.findall( r'(\d+)([a-z]+)(\d+)(\2)(\1)' , s )  # [('111', 'aaa', '222', 'aaa', '111')]# 实例5:条件匹配
# '(?( id\name )yes-pattern|no-pattern)' 判断指定组是否已匹配,执行相应的规则
# 如id\name 指定组在前面匹配成功执行 yes-pattern 否则执行 no-pattern 的正则式。# 要匹配形如 usr@mail  < usr@mail >
s='<usr1@mail1>  usr2@maill2'
re.findall( r'\s*(\w+@\w+)\s*' , s )           #一般匹配#['usr1@mail1', 'usr2@maill2']
re.findall( r'(<)?\s*(\w+@\w+)\s*(?(1)>)' , s )# [('<', 'usr1@mail1'), ('', 'usr2@maill2' )] 

实例6:

match = re.match( r'(.*) are (.*?) .*',"Cats are smarter than dogs", re.M|re.I)
# (.*) 第1个匹配分组,匹配除换行符之外所有字符
# (.*?) 第2个匹配分组,.? 非贪婪模式
# .* 不是分组,匹配效果同第1个,不计入匹配结果中if match:
print( "group(all)= : ", match.group()) #匹配到的完整文本字符
print("group(1)= ", match.group(1))     #得到第一组匹配结果,也就是(.*)匹配到
print("group(2)= ", match.group(2))     #得到第二组匹配结果,也就是(.*?)匹配到的
else:
print("No match!")# group(all)= : Cats are smarter than dogs
# group(1)= Cats
# group(2)= smarter 

python 66:re正则表达式5(全- tcy)相关推荐

  1. 05、Python爬虫之正则表达式常用方法(超全)

    文章目录 前言 一.search()函数 二.match()函数 三.compile()函数 四.findall()函数 五.sub()函数 六.subn()函数 七.split()函数 八.补充说明 ...

  2. python | 一篇文章正则表达式全学会

    目录 正则表达式的作用 re模块基本用法 1.match与search: 查找第一个匹配 re模块基本用法-raw re模块基本用法-match对象 re模块基本用法-findall 正则替换 re模 ...

  3. [Python]网络爬虫(七):Python中的正则表达式教程(转)

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  4. [Python]网络爬虫(七):Python中的正则表达式教程

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  5. 【Python笔记】正则表达式

    正则表达式 行定位符 元字符 限定符 字符类 排除字符 选择字符 转义字符 分组 在 Python 中使用正则表达式语法 行定位符 行定位符就是用来描述子串的边界. "^" 表示行 ...

  6. python必备基础代码-新手上路必学的Python函数基础知识,全在这里了(多段代码举例)...

    原标题:新手上路必学的Python函数基础知识,全在这里了(多段代码举例) 导读:函数是Python中最重要.最基础的代码组织和代码复用方式.根据经验,如果你需要多次重复相同或类似的代码,就非常值得写 ...

  7. Python 字符串及正则表达式

    字符串是所有编程语言在项目开发过程中涉及最多的一个内容.大部分项目的运行结果,都需要以文本的形式展示给客户,比如财务系统的总账报表,电子游戏的比赛结果,火车站的列车时刻表等. 5.1 字符串常用操作 ...

  8. python中的format什么意思中文-Python中format()格式输出全解

    格式化输出:format() format():把传统的%替换为{}来实现格式化输出 1.使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串, ...

  9. Python中re(正则表达式)模块函数学习

    2019独角兽企业重金招聘Python工程师标准>>> Python正则表达式指南 今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的 ...

  10. Python字符串和正则表达式中的反斜杠(‘\‘)问题

    在Python普通字符串中 在Python中,我们用''来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defgIn ...

最新文章

  1. Hexo博客NexT主题美化之顶部加载进度条
  2. r语言和python-r语言和python
  3. 【解决方案】Windows10局域网内配置文件夹共享(附网络中没有找到的情况解决方案)
  4. mysql在cmd命令下执行数据库操作
  5. ble之gatt server
  6. 独家下载!《零售数据中台通关指南》,带你玩转新零售
  7. 四路由器的OSPF DR ,BDR
  8. 32位hex转浮点 python_python——int()、hex()、oct()、bin()、float()数值类型转换函数
  9. Live WallPaper 让背景动起来
  10. Centos7安装32位库用来安装32位软件程序
  11. 安卓WindowManager注入事件如何跳出进程间安全限制
  12. 傲腾加速内存安装调试
  13. Ubuntu下安装nvidia显卡驱动
  14. 中文地址识别api的使用测试,快递地址自动补全,自动识别省市区,地址清洗,到底哪个好用?
  15. 服务器系统漏洞修补记录,服务器安全狗之系统漏洞修复教程与实例
  16. SNF快速开发平台MVC-Grid++集成打印
  17. Nginx nginx.conf配置文件详解
  18. ios html5 app上架,H5封装的IOS应用上架App Store被拒怎么办
  19. 草图vr3.6许可证服务器安装失败,VRay3.6无法获得许可-200
  20. 数据湖:数据同步工具NiFi

热门文章

  1. SQL*Plus格式化查询结果
  2. 阿里云地域和可用区怎么选?
  3. SoapUI使用以及常见错误解决
  4. 计算机原理教程 pdf,《计算机组成原理》教程 概述.pdf
  5. 统计源期刊目录_护理核心期刊投稿最强攻略:期刊目录、投稿周期、发文倾向全在这里了!...
  6. sid更新 续订sas软件_更新SAS 9.4(64位) SID的方法
  7. 苹果tv4安装,I play.iOS13代pv4安装,播放国内视频,
  8. 老司机多年BT下载软件-这些下载神器你都用过吗
  9. JAVA常用的快捷键
  10. 真实可靠的Python清屏命令