import re#search
s = "<a>wahaha</a>"  #标签语言 html 和 web相关
ret= re.search("(>)(\w+)(<)",s)
print(ret.group()) #>wahaha<  和print(ret.group(0))结果一样
print(ret.group(1)) #>        数字参数代表取对应分组中的内容
print(ret.group(2)) #wahaha
print(ret.group(3)) #<
# search分组 通过数字显示# findall
# 为了findall可以顺利取到分组中的内容,有一种特殊的语法,就是优先显示分组内容
ret= re.findall(">\w+<",s)
print(ret) #['>wahaha<']

ret= re.findall(">(\w+)<",s) #加括号会优先显示(\w+)的内容,两边的> < 就不显示了
print(ret) #['wahaha']# 取消分组优先(?: 正则表达式)
ret= re.findall("\d+(\.\d+)?", "1.234.5.678")
print(ret)  #['.234', '.678'] python把正则中的括号当成了优先分组,所以取出来的是小数点之后的,
# 因为正则规则用了()规定小数,所以函数会当成优先级执行

ret2= re.findall("\d+(?:\.\d+)?", "1.234.5.678") #在括号中加上?: 可以取消优先级
print(ret2) #['1.234', '5.678']#split
#没有分组的时候会把切掉的内容不显示,加上分组会一起显示出来
ret = re.split("\d+","alex29egon30")
print(ret)  #['alex', 'egon', '']

ret = re.split("(\d+)","alex29egon30")
print(ret)  #['alex', '29', 'egon', '30', '']#分组命名  (?P<这个组的名字>正则表达式)
s = '<a>wahaha</a>'
ret = re.search('>(?P<name>\w+)<',s)#把想取出来的wahaha单独括起来了,并且加了 ?P 和一个名字 (name)
print(ret.group())  #>wahaha<
print(ret.group(1))  #wahaha  因为就一个分组,所以直接取wahaha
print(ret.group('name')) #wahaha  也可以通过组名取值
s = '<a>wahaha</a>'
pattern = '<(\w+)>(\w+)</(\w+)>'
ret = re.search(pattern,s)
print(ret.group(1) == ret.group(3))  # True 判断前后两个标签名 a a 字是否一致
s = '<a>wahaha</A>'
pattern = '<(\w+)>(\w+)</(\w+)>'
ret = re.search(pattern,s)
print(ret.group(1) == ret.group(3))  # False 判断前后两个标签名 a A 字是否一致
# 使用前面的分组 要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致
s = '<a>wahaha</A>'
pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>'
ret = re.search(pattern,s)
print(ret)  #None  前后分组的名字不一致, 返回None
s = '<a>wahaha</a>'
pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>' #要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致
ret = re.search(pattern,s)
print(ret.group(2))
s = '<a>wahaha</a>'pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>' #要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致ret = re.findall(pattern,s)print(ret)  #[('a', 'wahaha')]

s = '<a>wahaha</a>'pattern = r'<(\w+)>(\w+)</(\1)>' #\1 直接表示了第一个()里的内容, 这个没有tab,没有组名,直接用数字表达了,但是需要在字符串前加上一个r, 对\1转义ret = re.findall(pattern,s)print(ret)  #[('a', 'wahaha', 'a')]
# 这些情况会用到 # 2018-12-06 # 2018.12.6 # 2018 12 06 # 12:30:30

转载于:https://www.cnblogs.com/kenD/p/9494179.html

分组在re模块中的使用相关推荐

  1. 【Android 组件化】路由组件 ( 生成 Root 类记录模块中的路由表 )

    文章目录 一.Root 表作用 二.生成 Root 表 三.完整注解处理器代码 及 生成的 Java 代码 ( 仅供参考 ) 1.注解处理器代码 2.app 模块中的注解类生成的 Java 源码 3. ...

  2. python基本模块中的对象_Python 学习笔记 -- OS模块的常用对象方法

    1 #这里列举在os模块中关于文件/目录常用的函数使用方法 2 3 #这里需要注意下,在使用这些方法前记得导入os模块 4 import os #导入os模块 5 """ ...

  3. Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...

    我在硬故障处理程序中有一些程序集.程序集基本上是为了传递当前堆栈指针作为参数(在R0中).它看起来像这样...如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数? __asm(&quo ...

  4. 现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始...

    异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html 这篇没啥技术含量,用来小记一番 错误信息 "System.Invalid ...

  5. 爬虫之lxml模块中etree.tostring函数的使用

    爬虫之lxml模块中etree.tostring函数的使用 运行下边的代码,观察对比html的原字符串和打印输出的结果 from lxml import etree html_str = ''' &l ...

  6. 爬虫之requests模块中cookies参数的使用

    爬虫之requests模块中cookies参数的使用 上一篇文章在headers参数中携带cookie,也可以使用专门的cookies参数 cookies参数的形式:字典 cookies = {&qu ...

  7. 关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)

    关于这个正则表达式,我本人也是有点不完全懂,还在继续学习中. 97.re 1.正则表达式: 1.通配符:正则表达式可与多个字符串匹配,可使用特殊字符来创建这种正则表达式 例如:正则表达式'.ython ...

  8. Magento中如何在模块中使用多张数据表并配置多个model?

    功能介绍: 引用magento开发人员的一句话: Magento has basic one resource to one table resource. 也即是一个资源对应一张数据表. 当有时候, ...

  9. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)

    pandas使用groupby函数对dataframe进行分组统计.使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index) 目录

  10. SPC在SAP QM模块中的应用

    SPC在SAP QM模块中的应用 1.点击控制标识符--勾选采样过程.统计过程控制特征. 2.点击定量数据,维护上下限. 以上两点也可以在检验计划中维护. 创建采样过程 QDV1 1.取样类型:只能使 ...

最新文章

  1. mysql a-z排序_mysql实现首字母从A-Z排序
  2. mysql根据时间戳查询指定日期内数据
  3. 【软件工程】UML软件
  4. 记一次糟心的内网靶场实战
  5. 分布式事务中间件 Fescar - 全局写排它锁解读 1
  6. 【黑金ZYNQ7000系列原创视频教程】02.视频接口mdash;mdash;hdmi编码输出实验
  7. 用if写一个备份mysql的脚本
  8. CentOs基础操作指令(网络配置,RPM包管理)
  9. 关于android的零碎问题的整理
  10. vue2.0桌面端框架_Vue PC端框架
  11. HTML5视频播放器
  12. 修改mysql数据库默认字符集_MySQL数据库之修改mysql默认字符集的两种方法详细解析...
  13. WORD的POI处理与原理
  14. Fredholm第二类积分方程的MATLAB代码实现(1)
  15. MCSA / Windows Server 2016 服务器的远程管理
  16. 微信小程序中使用emoji表情
  17. VMware 8.02虚拟机安装MAC lion 10.7.3教程 附送原版提取镜像InstallESD.iso!
  18. 【天磊卫士安全预警】incaseformat蠕虫病毒预警
  19. jenkins下载插件慢解决方式
  20. 决策树ID3算法,计算过程

热门文章

  1. 随便玩玩Django--输入网址生成二维码
  2. iphone 利用UIImageView来制作幻灯片
  3. 树莓派学习路程No.2 GPIO功能初识 wiringPi安装
  4. 数据结构(四)之冒泡排序
  5. linux之iptables详解及配置
  6. 比较各种SpA分类标准
  7. 灵活的Zend Framework之使用自定义的Frontcontroller
  8. 刺激!我31岁敲代码10年,明天退休!
  9. 身处小公司,如何在2年内快速突破,拿到大厂offer?
  10. 软件架构入门,看这篇就够了···