python正则表达式Re模块备忘录
title: python正则表达式Re模块备忘录
date: 2019/1/31 18:17:08
toc: true
python正则表达式Re模块备忘录
备忘录
- python中的数量词为贪婪模式
- 前瞻回顾的解释
前瞻: exp1(?=exp2) exp1后面的内容要匹配exp2
负前瞻: exp1(?!exp2) exp1后面的内容不能匹配exp2
后顾: (?<=exp2)exp1 exp1前面的内容要匹配exp2
负后顾: (?<!exp2)exp1 exp1前面的内容不能匹配exp2
一览
选项
#\w, \W, \b, \B, \d, \D, \s and \S
re.A
re.ASCII
re.DEBUG
#忽略大小写
re.I
re.IGNORECASE
#使预定字符类 \w \W \b \B \s \S
re.L
re.LOCALE
#多行模式
re.M
re.MULTILINE
#使'.'特殊字符与任何字符匹配包括换行符;
re.S
re.DOTALL
#可以使用注释在正则中,忽略表达式的空白
re.X
re.VERBOSE
方法
re.compile(pattern, flags=0)
re.search(pattern, string, flags=0)
re.match(pattern, string, flags=0)
re.fullmatch(pattern, string, flags=0)
re.split(pattern, string, maxsplit=0, flags=0)
re.findall(pattern, string, flags=0)
re.finditer(pattern, string, flags=0)
re.sub(pattern, repl, string, count=0, flags=0)
re.subn(pattern, repl, string, count=0, flags=0)
re.escape(pattern)
re.purge()
match
- ------------------属性--------------------------
- string: 匹配时使用的文本
- re: 匹配时使用的Pattern对象。
- pos: 文本中正则表达式开始搜索的索引。
- endpos: 文本中正则表达式结束搜索的索引
- lastindex: 最后一个被捕获的分组在文本中的索引
- lastgroup: 最后一个被捕获的分组的别名
- ------------------方法------------------------------
- Match.getitem(g) 匹配的下标,从0开始
- group([group1, …]): 同上述,下标从1开始
- groups([default]):
- groupdict([default]): 返回以有别名的组的别名为键、以该组截获的子串为值的字典
- start([group]): 返回指定的组截获的子串在string中的起始索引
- end([group]): 返回指定的组截获的子串在string中的结束索引
- span([group]): 返回(start(group), end(group))。
- expand(template): 可用作替换,比如
m.expand(r'\2 \1\3')
Pattern
- ------------------属性--------------------------
- pattern: 编译时用的表达式字符串。
- flags: 编译时用的匹配模式。
- groups: 表达式中分组的数量。
- groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不在内。
- ------------------方法------------------------------
- match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]) :
- search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]): 与match的不同在于能找到中间的匹配
- split(string[, maxsplit]) | re.split(pattern, string[, maxsplit]): 分割字符
- findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]):
- finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]): 可以使用
for来迭代 - sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]): 替换
- subn(repl, string[, count]) |re.sub(pattern, repl, string[, count]): 返回 (sub(repl, string[, count]), 替换次数)。
例子
匹配字符串中除了"abc"以外的所有其它部分
https://www.cnblogs.com/deerchao/archive/2008/12/03/1346940.html
正则表达式:
([^abc]|a(?!bc)|(?!<a)b(?!c)|(?<!ab)c)+
字符串: xbsdabcwcwabczia
匹配:
1, xbsd
2, wcw
3, zia
说明:
任意不是abc的字符,通过..
字符a,只有在后边不是bc的情况下通过;
字符b,只有在前面不是a,且后边不是c的情况下通过;
字符c,只有前面不是ab的情况下通过..
参考资料
python 速记正则使用原标题: 一篇搞定Python正则表达式
正则表达式30分钟入门教程
常用正则表达式,在线正则 其他正则工具 jb51 正则速查表
官方re模块文档
cnblog Python正则表达式指南
EN 表达式在线测试
python正则表达式Re模块备忘录的更多相关文章
- Python面试题之Python正则表达式re模块
一.Python正则表达式re模块简介 正则表达式,是一门相对通用的语言.简单说就是:用一系列的规则语法,去匹配,查找,替换等操作字符串,以达到对应的目的:此套规则,就是所谓的正则表达式.各个语言都有 ...
- Python 正则表达式——re模块介绍
Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.match函数 re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则matc ...
- python正则表达式——re模块
http://blog.csdn.net/zm2714/article/details/8016323 re模块 开始使用re Python通过re模块提供对正则表达式的支持.使用re的一般步骤是先将 ...
- python 正则表达式re模块
#####################总结############## 优点: 灵活, 功能性强, 逻辑性强. 缺点: 上手难,旦上手, 会爱上这个东西 ...
- python正则表达式re模块详细介绍--转载
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆( ...
- python正则表达式-re模块的爱恨情仇
利用python的re模块,使用正则表达式对字符串进行处理 # 编辑者:闫龙 import re restr = "abccgccc123def456ghi789jgkl186000&quo ...
- python正则表达式-re模块
目录: 一.正则函数 二.re模块调用 三.贪婪模式 四.分组 五.正则表达式修饰符 六.正则表达式模式 七.常见的正则表达式 导读: 想要使用python的正则表达式功能就需要调用re模块,re模块 ...
- python -- 正则表达式&re模块(转载)
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Python正则表达式re模块学习遇到的问题
Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...
随机推荐
- 从零开始搭建服务器部署web项目
前言 该教程旨在完整描述建站过程,会将博主踩过的坑尽量详细的罗列出来.整个建站流程相对较为庞大,因此做了分解,同时适合大家有针对性的查询感兴趣的部分. 一.如何拥有自己的云服务器. 二.域名的购买与解 ...
- 啰嗦的 java,简洁的 lombok —— lombok 的使用及简单实现单例模式注解
lombok 是什么? lombok 是一个非常神奇的 java 类库,会利用注解自动生成 java Bean 中烦人的 Getter.Setting,还能自动生成 logger.ToString.H ...
- 谈下git的基本操作
在工作之后,我比较经常地接触git,关于git的用法,网上有很多的教程,而且git的指令是非常多的,强如阮一峰这样的高手也直言无法记住git的很多指令.实际上我也看了不少关于git指令的文章,个人觉得 ...
- [20190416]完善shared latch测试脚本2.txt
[20190416]完善shared latch测试脚本2.txt --//昨天测试shared latch,链接:http://blog.itpub.net/267265/viewspace-264 ...
- linux下的别名机制
相当于用户自己创建一个属于自己的命令.在当前用户的家目录下有一个.bashrc文件,编辑该文件: eg:alias cls='clear' 如果命令要生效需要重新登录.用户输入cls就可以达到清屏的目 ...
- 配置安全的管理访问(GNS3)
实验拓扑: 实验目的: 尝试用R2/R3远程登陆R1路由器并进行管理,在此之前先在R1配置安全的管理访问 1.端口IP配置 R1: e1/0 192.168.1.1/24 e1/1 192.168.2 ...
- [JSOI2008]Blue Mary的旅行
嘟嘟嘟 看\(n\)那么小,就知道是网络流.然后二分,按时间拆点. 刚开始我看成所有航班一天只能起飞一次,纠结了好一会儿.但实际上是每一个航班单独考虑,互不影响. 建图很显然,拆完点后每一个点的第\( ...
- JS实现 阿拉伯数字金额转换为中文大写金额 可以处理负值
JS实现 阿拉伯数字金额转换为中文大写金额 可以处理负值 //************************* 把数字金额转换成中文大写数字的函数(可处理负值) ****************** ...
- Centos7下安装和配置vim
Centos7 最新版本默认已经安装vim,可以使用命令查看是否安装 rpm -qa|grep vim 输出结果如下,如无以下输出结果,则安装vim: vim-filesystem-7.4.160-4 ...
- C++开发python windows版本的扩展模块示例
C++开发python windows版本的扩展模块示例 测试环境介绍和准备 测试环境: 操作系统:windows10 Python版本:3.7.0 VS版本:vs2015社区版(免费) 相关工具下载 ...