Python——正则模块
1、re模块是用来操作正则表达式
2、正则表达式——用来字符串匹配的
(1)字符组:[字符组] 例如[0123fdsa456*/-]
[0-9] 等同于[0123456789]
[a-z] 匹配小写字母
[A-Z]匹配大写字母
(2)特殊的元字符
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母或数字或下划线 |
| \s | 匹配任意的空白符 |
| \d | 匹配数字 |
| \n | 匹配一个换行符 |
| \t | 匹配一个制表符 |
| \b | 匹配单词的结尾 g\b以g结尾的单词 |
| ^ | 匹配字符串的开始 ^e |
| $ | 匹配字符串的结尾 w$ |
| \W | 匹配非字母、数字、下划线 |
| \D | 匹配非数字 |
| \S | 匹配非空白符 |
| a|b | 匹配字符a或b 先长字符后短字符 |
| () | 分组 |
| [^abc] | 除了abc以外都匹配 |
(3)量词
| * | 匹配0次或多次 |
| + | 匹配1次或多次 |
| ? | 匹配0次或1次 |
| {n} | 重复多次 |
| {n,} | 重复n次或更多次 |
| {n,m} | 重复n到m次 |
(4)转义符 \
注:r"\\d" 表示取消转义,直接显示出本来的字符
3、使用re模块方法
# -*- coding:UTf-8 -*-
#findall 是寻找所有匹配的字符
#参数一:需要匹配的字符,正则规则
#参数二:带匹配的字符串
import re
re = re.findall('e','eva egon yuan')
print(re)
#从前往后,找到一个就返回,返回,返回的变量需要调用group才能拿到结果
#如果没有找到,那么返回NONE,调用gruop会报错
re = re.search('e','eva egon yuan')
if re :
print(re.group())
#natch是从头开始匹配,同样调用group方法
re = re.match('e','eva egon yuan')
if re :
print(re.group())
#split方法,分割
re = re.split('[ab]','adbc') #利用正则关系进行分割 #sub 方法,替换
re = re.sub('\d','H','efaflkdjafhg',1)#利用正则规则进行替换,将数字替换成H #subn方法
re = re.subn('\d','H','fdahglaag')#将数字地换成H,返回元祖,替换了几次 #compile方法,编译规则
obj = re.compile('\d{3') #将正则表达式编译成一个正则表达式对象,建立规则
re = obj.search('fdafsafdsa12313')
print(re.group()) #finditer 返回一个存放匹配结果的迭代器
re = re.findall('\d','fwqre12314')
print (next(re).group) #查询第一个结果
for i in re:
print(i.group())
#flags方法
re.I 忽略大小写,括号内是完整的写法
re.M 多行模式,改变^和$的行为
re.S 可以匹配任意字符,包括换行符
re.L 做本地化识别任意字符,表示特殊字符集
re.U 使用\w \W \s \S \d \D 使用取决于unicode定义的字符属性,python3中默认使用
re.X 冗长模式,改模式下pattern字符串是多行的,忽略空白符并可以添加注释
4、group(),里面可以加入整数值,表示取局部分组里的数值,分组的意思是正则表达公式里的分组
5、正则表达式中‘?’ 有三种功能, (1) 单独表示匹配0次或1次(2)放在字符串后面表示惰性匹配,表示匹配最少的次数(3)跟findall使用,在字符串内,表示取消优先级查询
6、在分组的时候,findall,split 是有分组优先级的,需要特别注意一下
Python——正则模块的更多相关文章
- 认识python正则模块re
python正则模块re python中re中内置匹配.搜索.替换方法见博客---python附录-re.py模块源码(含re官方文档链接) 正则的应用是处理一些字符串,phthon的博文python ...
- python:正则模块
1,正则表达式 正则表达式是用来做字符串的匹配的,正则有他自己的规则,和python没有关系,一种匹配字符串的规则. 2,字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表 ...
- 19 Python 正则模块和正则表达式
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...
- Python正则模块
re模块 import re # match # 从头开始匹配, 只匹配一次,就结束 a = re.match('\d+', '54:58天5488:8451') # 默认就是0个群组 print(a ...
- Python全栈开发【re正则模块】
re正则模块 本节内容: 正则介绍 元字符及元字符集 元字符转义符 re模块下的常用方法 正则介绍(re) 正则表达式(或 RE)是一种小型的.高度专业化的编程语言. 在Python中,它内嵌在Pyt ...
- 小白的Python之路 day5 re正则模块
re正则模块 一.概述 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,要讲他的具体用法要讲一本书!它内嵌在Python中,并通过 re 模块实现.你可以为想要匹配的相应字符串 ...
- Python 正则处理_re模块
正则表达式 动机 文本处理成为计算机常见工作之一 对文本内容搜索,定位,提取是逻辑比较复杂的工作 为了快速方便的解决上述问题,产生了正则表达式技术 定义 文本的高级匹配模式, 提供搜索, 替换, 本质 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- python——re模块(正则表达)
python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...
随机推荐
- js报错:Uncaught SyntaxError: Unexpected string
一.问题 今天在写jsp页面时,发现加上某段代码后,页面的其它js就失效了,死活出不来,然后打开谷歌浏览器发现,页面js报如下错误: Uncaught SyntaxError: Unexpected ...
- 代码编辑器横评:为什么 VS Code 能拔得头筹
摘要: 为什么 VS Code 这么火... 公众号:玩转 VS Code 原文:代码编辑器横评:为什么 VS Code 能拔得头筹 Fundebug经授权转载,版权归原作者所有. 2015 年 4 ...
- vue安装element-ui和px2rem的细节
1.按需引入element-ui vue脚手架搭建完成之后,可以到element-ui官网进行npm 安装: npm i element-ui -S 如果是完整引入可以按照官网一步一步做即可完成:这里 ...
- Dynamics 365-如何利用Audit History还原被删除的数据
Audit History,常被用来记录record的日常操作信息,包括创建,更新,删除.这是一个非常实用的功能,想想看,如果数据被误修改了,通过Audit History,可以很容易地找到修改前的数 ...
- MVP模式, 开源库mosby的使用及代码分析
Android中的构架模式一直是一个很hot的topic, 近年来Architecture components推出之后, MVVM异军突起, 风头正在逐渐盖过之前的MVP. 其实我觉得MVP还是有好 ...
- Vue一个案例引发的递归组件的使用
今天我们继续使用 Vue 的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的<Vue一个案例引发的动态组件与全局事件绑定总结> 之后,今天来聊一聊我们如何在项 ...
- Java https ssl证书导入删除
下载并命名 例如命名github.cer 放进jre的lib\security下 keytool -delete [OPTION]... 选项: -alias <alias> 要处理的条目 ...
- SpringMVC解决@ResponseBody返回Json的Date日期类型的转换问题
在做项目的时候,发现后台把Date类型的属性以json字符串的形式返回,前台拿不到转换后的日期格式,始终响应回去的都是long类型时间戳. 查阅资料之后找到解决方法: 方法一(在springmvc的x ...
- MySQL游标循环取出空值的BUG
早上同事要我写个MySQL去除重复数据的SQL,想起来上次写过一篇MySQL去除重复数据的博客,使用导入导出加唯一索引实现的,但是那种方式对业务影响较大,所以重新写一个存储过程来删重复数据,这一写就写 ...
- c/c++ 网络编程 UDP 设定MTU
网络编程 UDP 设定MTU MTU(Maximun Transmisson Unit):一次送信的最大size. 在程序里动态改变MTU.注意:程序运行需要root权限. 程序运行的方法: sudo ...