python3 re模块_python3+ 模块学习 之 re
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相关推荐
- django python3会员中心_python3开发进阶-Django框架的自带认证功能auth模块和User对象的基本操作...
阅读目录 一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate( ...
- python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用
本篇详解python中模块和包(库)的构建及使用. 欢迎微信随缘关注@pythonic生物人 本文您将学到什么? 1.模块 定义模块 导入模块 调用模块中函数方法1 模块名.函数名方法2 from 模 ...
- python3常用模块_Python3 常用模块
一.time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们 ...
- python3 模块大全_Python3 模块 | 菜鸟教程
Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...
- python3 image模块_python3之成像库pillow
python提供了python image library图像库,处理图像功能,该库提供了广泛的文件格式支持,如JPEG.PNG.GIF.等,它提供了图像档案.图像显示.图像处理等功能 PIL中所涉及 ...
- python hashlib模块_python3 hashlib模块
Python3 hashlib模块和hmac 模块(加密) hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha ...
- Python学习-模块与模块的上传、调用、下载
目录 一.模块化(module)程序设计理念 1.模块和包概念的进化史 2.标准库模块(standard library) 3.为什么需要模块化编程 4.模块化编程的流程 5.模块的 API 和功能描 ...
- Python3.7中time模块的time()、perf_counter()和process_time()的区别
Python3.7中time模块的time方法.perf_counter方法和process_time方法的区别 1. time.time()方法 2. time.perf_counter()方法 3 ...
- python3的数据类型以及模块的含义
python3的数据类型以及模块的含义 购物车 转载于:https://blog.51cto.com/11834445/1884901
最新文章
- 初级JavaScript程序员的绝佳进阶书
- nginx反向代理、负载均衡、动态请求
- mvc 普通上传, 图片转二进制上传
- 怎么防爬虫爬取信息_scrapy爬取51job职位信息(针对新的反爬虫机制)!
- mybatis count返回null_Mybatis属性示例-Properties的三种配置方式
- Redis数据持久化、数据备份、数据的故障恢复
- 数据结构 —— 线段树
- navicate连接远程数据库
- Kafka 安装部署、集群启动、命令行操作 与 可视化工具 Kafka Tool
- torch.nn.parallel.DistributedDataParallel使用中卡在第一个epoch的原因之一
- python3 yum源_Redhat7.3更换CentOS7 yum源
- 智图—源于QQ空间图片WebP化的思考
- Android签名生成和Android签名格式转换工具(MD5和SHA1签名)
- 视频教程-Java异常原理剖析-Java
- scratch学习1 积木区+程序区
- 英语练习30 Poor Dick
- 流批一体?实时数据处理场景化应用实例~
- Android趣味计算器
- 华为Mate30EPro和华为mate40哪个好
- Arrays.stream和Stream.of
热门文章
- 人人都能够做深度学习应用:入门篇
- 博客搬家——从CSDN到博客园
- C#/.net 中的事件与代理
- 企业库第4版最后版本下载
- 成功的CMMI过程定义
- seo模拟点击软件_网站排名优化第一课:如何看待快排?SEO排名工具到底香不香!...
- 复制的python代码格式错误_新手常见6种的python报错及解决方法
- 计算机系统-电路设计07-上升沿D触发器的内部电路实现/移位寄存器/串行接口/并行接口
- 分奇偶数c语言_小白学写字(C语言)
- Spring Cloud入门一 Eureka Server