python3+ 模块学习 之 re
re 模块
Python3 正则表达式特殊符号及用法(详细列表) (出处: 鱼C论坛)
正则表达式
常用元字符:
. ^ $ * + ? { } [ ] \ | ( )
| * | 表示匹配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<name>...) 表示命名组,反向引用(?P=name)
前向断言(零宽,即断言不会被匹配到结果字符串中,也不会消耗字符串):即断言在此位置的后面匹配的是...的内容(在断言字符串的前面,故称前向断言)
(?=...) 表示肯定,匹配成功表示成功,否则失败。
(?!...) 表示否定, 匹配失败表示成功,否则失败
e.g. .*[.](?!bat$).*$ 匹配文件扩展名不为'bat'的文件
后向断言(零宽,即断言不会被匹配到结果字符串中,也不会消耗字符串):即断言在此位置的前面匹配的是...的内容(在断言字符串的后面,故称后向断言)
(?<=...) 表示肯定,匹配成功表示成功,否则失败。
(?<!...) 表示否定, 匹配失败表示成功,否则失败
条件匹配:
(?(id/name)Y|N) ,如果id 或者name匹配,则匹配'Y',否则,匹配'N'
字符串替换的引用:
\g序号 或 \g<序号> 推荐用第二种方法,防止歧义
\g<name> 用命名组的方式引用
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+ 模块学习 之 subprocess
subprocess 模块方法: call() check_call() check_output() 以上三个方法用于创建一个子进程,父进程等待子进程结束.若shell = true, 则shell ...
- 吴裕雄--天生自然python学习笔记:Python3 模块
Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- (转)Python3 模块3之 Urllib之 urllib.parse、urllib.robotparser
原文:https://blog.csdn.net/qq_36148847/article/details/79153738 https://blog.csdn.net/zly412934578/art ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
- python3.4学习笔记(十六) windows下面安装easy_install和pip教程
python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安 ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
随机推荐
- R 在linux redhat 6.5的编译安装过程
下载源码包 在http://cran.r-project.org/mirrors.html,选择一个国内镜像下载需要的版本,比如:http://mirror.lzu.edu.cn/CRAN/src/b ...
- ie浏览器 jsp中链接参数为中文的处理
在js中,使用 encodeURIComponent(encodeURIComponent("警情抽查"))来处理参数,例如: mini.get("khxmdm" ...
- windows server2008 kettle部署
kettle部署需要有jdk环境,所以需要配置环境变量. 1.首先配置jdk,将jdk压缩包解压到c盘下 增加系统变量:JAVA_HOME:c:\jdk 在path后追加: %JAVA_HOME%\b ...
- 用composer安装Yii
YII2通过Composer安装方法http://www.yiichina.com/download 一.Composer安装首先到https://getcomposer.org/doc/00-int ...
- 【P1915】[usaco09 dec gold]电视游戏问题
在百度上搜到了nzx学长的题解orz 原题: 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是因为满足的牛会产更 ...
- unity行为树制作AI简单例子(2)
继续昨天的工程,给Monster添加一个空物体命名为AI,在AI添加脚本BehaviorTree,然后就可以打开行为树编辑器进行编辑了 先写好自定义的节点脚本,下面是一个寻找漫游点的行为节点脚本 us ...
- 查询expression的小工具
今天在研究flipsolve的时候无意间写了个shelf tool,用于查询一大推节点中某些parameter的expression中是否存在我需要的关键字.就是简单的对所框选的节点进行一个循序查询参 ...
- .Net WebApi 实现OAuth2.0认证
现在多数公众平台提供的api都使用OAuth2.0认证模式,最近在搞Android方面的开发,身份认证和权限控制的各方面比较来说,使用OAuth认证的还是比较靠谱,OAuth2.0的协议可以参考htt ...
- css预处理语言的模块化实践
编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋.对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目 ...
- NSSM - windows 服务安装工具
nssm windows 服务安装工具,简单方便, windows service wrapper 也是一个类似的工具,但是需要进行配置文件编写= 下载的地址: http://nssm.cc/rel ...