1. # 正则表达式
    # 字符组 [字符]
    # 元字符
    # \w \d \s
    # \W \D \S
    # . 除了换行符以外的任意字符
    # \n \t
    # \b
    # ^ $ 匹配字符串的开始和结束
    # () 分组 是对多个字符组整体量词约束的时候用的
    #re模块:分组是有优先的
    # findall
    # split
    # | 从左到右匹配,只要匹配上就不继续匹配了。所以应该把长的放前面
    # [^] 除了字符组内的其他都匹配
  1. # 量词
    # * 0~
    # + 1~
    # ? 0~1
    # {n} n
    # {n,} n~
    # {n,m} n~m
  2.  
  3. # 转义的问题
    # import re
    # re.findall(r'\\s',r'\s')
  1. # 惰性匹配
    # 量词后面加问号
    # .*?abc 一直取遇到abc就停
  1. # re模块
  2. import re
  3. re.findall('\d','awir17948jsdc',re.S)
  4. # 返回值:列表 列表中是所有匹配到的项
  1. ret = re.search('\d(\w)+','sds815jsdc')
  2. ret = re.search('\d(?P<name>\w)+','awir17948jsdc')
  3.  
  4. # 找整个字符串,遇到匹配上的就返回,遇不到就None
  5. # 如果有返回值ret.group()就可以取到值
  6. # 取分组中的内容 : ret.group(1) / ret.group('name')
  1. # match
    # 从头开始匹配,匹配上了就返回,匹配不上就是None
    # 如果匹配上了 .group取值
  2.  
  3. # 分割 split
    # 替换 sub 和 subn
    # finditer 返回迭代器
    # compile 编译 :正则表达式很长且要多次使用
  1. import re
  1. ret = re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>")
  2. #还可以在分组中利用?<name>的形式给分组起名字
  3. #获取的匹配结果可以直接用group('名字')拿到对应的值
  4. print(ret.group('tag_name')) #结果 :h1
  5. print(ret.group()) #结果 :<h1>hello</h1>
  1. import re
  2.  
  3. ret = re.search(r"<(\w+)>\w+</\1>","<h1>hello</h1>")
  4. #如果不给组起名字,也可以用\序号来找到对应的组,表示要找的内容和前面的组内容一致
  5. #获取的匹配结果可以直接用group(序号)拿到对应的值
  6. print(ret.group(1))
  7. print(ret.group()) #结果 :<h1>hello</h1>
  1. import re
  2.  
  3. ret=re.findall(r"\d+\.\d+|(\d+)","1-2*(60+(-40.35/5)-(-4*3))")
  4. print(ret) # ['1', '2', '60', '', '5', '4', '3']
  5. ret.remove('')
  6. print(ret) # ['1', '2', '60', '5', '4', '3']
  7. ret=re.findall(r"-?\d+\.\d*|(-?\d+)","1-2*(60+(-40.35/5)-(-4*3))")
  8. print(ret) #['1', '-2', '60', '', '5', '-4', '3']
  9. ret.remove("")
  10. print(ret) #['1', '-2', '60', '5', '-4', '3']
  1.  
  1.  

Python-正则复习-56的更多相关文章

  1. Python正则式的基本用法

    Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...

  2. python 正则,常用正则表达式大全

    Nginx访问日志匹配 re.compile #re.compile 规则解释,改规则必须从前面开始匹配一个一个写到后面,前面一个修改后面全部错误.特殊标准结束为符号为空或者双引号:  改符号开始 从 ...

  3. python 正则使用笔记

    python正则使用笔记 def remove_br(content): """去除两边换行符""" content = content.r ...

  4. Python正则处理多行日志一例

    正则表达式基础知识请参阅<正则表达式基础知识>,本文使用正则表达式来匹配多行日志并从中解析出相应的信息. 假设现在有这样的SQL日志: SELECT * FROM open_app WHE ...

  5. Python正则匹配字母大小写不敏感在读xml中的应用

    需要解决的问题:要匹配字符串,字符串中字母的大小写不确定,如何匹配? 问题出现之前是使用字符串比较的方式,比如要匹配'abc',则用语句: if s == 'abc':#s为需要匹配的字符串 prin ...

  6. Python并发复习1 - 多线程

    一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...

  7. Python正则替换字符串函数re.sub用法示例(1)

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...

  8. Python正则处理多行日志一例(可配置化)

    正则表达式基础知识请参阅<正则表达式基础知识>,本文使用正则表达式来匹配多行日志并从中解析出相应的信息. 假设现在有这样的SQL日志: SELECT * FROM open_app WHE ...

  9. 认识python正则模块re

    python正则模块re python中re中内置匹配.搜索.替换方法见博客---python附录-re.py模块源码(含re官方文档链接) 正则的应用是处理一些字符串,phthon的博文python ...

  10. python正则的中文处理(转)

    匹配中文时,正则表达式规则和目标字串的编码格式必须相同 print sys.getdefaultencoding() text =u"#who#helloworld#a中文x#" ...

随机推荐

  1. MySQL----mysql57服务突然不见了的,解决方法

    一. G:\MySQL\MySQL Server 5.7\bin>mysqld --initialize G:\MySQL\MySQL Server 5.7\bin>mysqld -ins ...

  2. EXT.NET初学

    1.ext:Hidden 必须在body里面有ext:ResourceManager的情况下才能运行 2.ext:Store里面不能有文字

  3. Spring MVC 请求映射 (二)

    完整的项目案例: springmvc.zip 目录 实例 项目结构: 一.配置web.xml <?xml version="1.0" encoding="UTF-8 ...

  4. Greenplum源码安装(CentOS 7)

      最近在看GP,在安装集群的时候遇到了很多问题,在此记录下来. 目录 1 安装环境及软件版本 2 安装准备工作 2.1 修改hosts(所有机器) 2.2 修改系统内核配置(所有机器) 2.3 关闭 ...

  5. x86服务器MCE(Machine Check Exception)问题

    MCE现象 Intel在Pentium 4.Xenon和P6系列处理器中实现了机器检查(Machinecheck)架构,提供能够检测和报告硬件(机器)的错误机制,如系统总线错误.ECC错误.奇偶校验错 ...

  6. c/c++ 智能指针 unique_ptr 使用

    智能指针 unique_ptr 使用 和shared_ptr不同,可以有多个shared_ptr指向同一个内存,只能有1个unique_ptr指向某个内存.因此unique_ptr不支持普通的拷贝和赋 ...

  7. MapFileParser.sh: Permission denied

    Unity项目,需要用Xcode运行,结果报了错误. 解决方案: 1.打开终端, 2.输入以下命令: chmod +x   /Users/......./MapFileParser.sh (MapFi ...

  8. SQL Server数据类型int、bigint、smallint、tinyint对比表

    SQL Server数据类型int.bigint.smallint.tinyint对比表 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 ...

  9. JavaSE: Java 5 新特性

    Java5新特性 1.Java 语言 1.1 Generics 1.2 foreach 1.3 自动拆箱装箱 1.4 enum 1.5 可变参数 varargs 1.6 static import 1 ...

  10. Java多线程(一) 什么是线程

    声明:本系列大多是翻译自https://www.javatpoint.com,加上自己的增删改,尽力写的系统而通俗易懂,后文不再重复声明. 点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更 ...