re 模块

正则表达式

常用元字符:

. ^ $ * + ?  {  } [  ] \ | (  )

*

表示匹配0次或多次

+

表示匹配1次或多次

?

表示匹配0次或1次

{m,n}

表示匹配m到n次(前四个加'?'实现非贪婪匹配)

|

表示或操作

^

匹配字符串的起始位置

$

匹配字符串的结束位置

\(元字符)    ---去除元字符的特殊功能,表示匹配正常字符

\(普通字符)    ----实现特殊功能

(普通字符小写,表示肯定,普通字符大写,表示非    e.g. \d相当于[0-9]   \D相当于[^0-9])

\d

相当于[0-9]

\s

匹配任何空白字符,相当于[\t\n\r\f\v]

\w

匹配任何单词字符

\b

匹配单词的开始或结束,表示单词边界

\Z

只匹配字符串的结束位置

python字符串与正则表示字符串有冲突,如\b(python字符串表示ASCII码8制表符,而正则表达式则表示匹配单词的开始或结束),在python中书写正则表示式时,要使用python的原始字符串,即添加'r'前缀。

Python 中正则表达式的扩展语法('...'表示正常的正则表达式):

(?:...)      表示非捕获组,非捕获组不会影响其他组的序号

(?P...)  表示命名组,反向引用(?P=name)

前向断言(零宽,即断言不会被匹配到结果字符串中,也不会消耗字符串):即断言在此位置的后面匹配的是...的内容(在断言字符串的前面,故称前向断言)

(?=...)    表示肯定,匹配成功表示成功,否则失败。

(?!...)    表示否定, 匹配失败表示成功,否则失败

e.g.  .*[.](?!bat$).*$  匹配文件扩展名不为'bat'的文件

后向断言(零宽,即断言不会被匹配到结果字符串中,也不会消耗字符串):即断言在此位置的前面匹配的是...的内容(在断言字符串的后面,故称后向断言)

(?<=...)   表示肯定,匹配成功表示成功,否则失败。

(?

条件匹配:

(?(id/name)Y|N)       ,如果id 或者name匹配,则匹配'Y',否则,匹配'N'

字符串替换的引用:

\g序号  或  \g    推荐用第二种方法,防止歧义

\g         用命名组的方式引用

python中使用正则表达式:(re module)

1.调用全局函数:

match(), search(), findall()

参数:(正则表达式, 匹配字符串[,匹配标志])

ASCII, A

使得转义符号如\w, \b, \s, \d只能匹配ASCII字符

DOTALL, S

使得. 匹配任何符号,包括换行符

IGNORECASE, I

匹配不区分大小写

LOCALE, L

支持当前的语言设置

MULTILINE, M

多行匹配

VERBOSE, X

启用详细的正则表达式(增加正则表达式的可读性,匹配时忽略' '和'\n' )

2.创建模式对象:

p = re.compile(正则表达式[,匹配标志])

然后调用对象的方法。

详见python标准文档。

python全局函数和对象方法中返回的match对象,设为m:

m.group(0)    查看整个正则表达式的匹配字符串

m.group(1)    查看第一个分组的匹配结果(分组在python中用小括号表示),其他分组依此类推

m.group('name')     同上,用分组的名字索引

m.groups()             返回所有分组的匹配结果,用元组表示

m.groupdict()    同上,用字典表示

m.start([group])      返回匹配的起始位置

m.end([group])    返回匹配的终止位置

m.span()     查看匹配的首尾位置的元组

详见python标准文档。

python3 re模块_python3+ 模块学习 之 re相关推荐

  1. django python3会员中心_python3开发进阶-Django框架的自带认证功能auth模块和User对象的基本操作...

    阅读目录 一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate( ...

  2. python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用

    本篇详解python中模块和包(库)的构建及使用. 欢迎微信随缘关注@pythonic生物人 本文您将学到什么? 1.模块 定义模块 导入模块 调用模块中函数方法1 模块名.函数名方法2 from 模 ...

  3. python3常用模块_Python3 常用模块

    一.time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们 ...

  4. python3 模块大全_Python3 模块 | 菜鸟教程

    Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...

  5. python3 image模块_python3之成像库pillow

    python提供了python image library图像库,处理图像功能,该库提供了广泛的文件格式支持,如JPEG.PNG.GIF.等,它提供了图像档案.图像显示.图像处理等功能 PIL中所涉及 ...

  6. python hashlib模块_python3 hashlib模块

    Python3 hashlib模块和hmac 模块(加密) hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha ...

  7. Python学习-模块与模块的上传、调用、下载

    目录 一.模块化(module)程序设计理念 1.模块和包概念的进化史 2.标准库模块(standard library) 3.为什么需要模块化编程 4.模块化编程的流程 5.模块的 API 和功能描 ...

  8. Python3.7中time模块的time()、perf_counter()和process_time()的区别

    Python3.7中time模块的time方法.perf_counter方法和process_time方法的区别 1. time.time()方法 2. time.perf_counter()方法 3 ...

  9. python3的数据类型以及模块的含义

    python3的数据类型以及模块的含义 购物车 转载于:https://blog.51cto.com/11834445/1884901

最新文章

  1. 初级JavaScript程序员的绝佳进阶书
  2. nginx反向代理、负载均衡、动态请求
  3. mvc 普通上传, 图片转二进制上传
  4. 怎么防爬虫爬取信息_scrapy爬取51job职位信息(针对新的反爬虫机制)!
  5. mybatis count返回null_Mybatis属性示例-Properties的三种配置方式
  6. Redis数据持久化、数据备份、数据的故障恢复
  7. 数据结构 —— 线段树
  8. navicate连接远程数据库
  9. Kafka 安装部署、集群启动、命令行操作 与 可视化工具 Kafka Tool
  10. torch.nn.parallel.DistributedDataParallel使用中卡在第一个epoch的原因之一
  11. python3 yum源_Redhat7.3更换CentOS7 yum源
  12. 智图—源于QQ空间图片WebP化的思考
  13. Android签名生成和Android签名格式转换工具(MD5和SHA1签名)
  14. 视频教程-Java异常原理剖析-Java
  15. scratch学习1 积木区+程序区
  16. 英语练习30 Poor Dick
  17. 流批一体?实时数据处理场景化应用实例~
  18. Android趣味计算器
  19. 华为Mate30EPro和华为mate40哪个好
  20. Arrays.stream和Stream.of

热门文章

  1. 人人都能够做深度学习应用:入门篇
  2. 博客搬家——从CSDN到博客园
  3. C#/.net 中的事件与代理
  4. 企业库第4版最后版本下载
  5. 成功的CMMI过程定义
  6. seo模拟点击软件_网站排名优化第一课:如何看待快排?SEO排名工具到底香不香!...
  7. 复制的python代码格式错误_新手常见6种的python报错及解决方法
  8. 计算机系统-电路设计07-上升沿D触发器的内部电路实现/移位寄存器/串行接口/并行接口
  9. 分奇偶数c语言_小白学写字(C语言)
  10. Spring Cloud入门一 Eureka Server