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 ...
随机推荐
- 【开源】SpringBootNetty聊天室V1.2.0升级版本介绍
前言 SpringBoot!微服务微架构的基础,Netty通信框架的元老级别框架,即之前的SpringBoot与Netty的实现聊天室的功能后已经过了不到一周的时间啦,今天我们更新了项目版本从V1.0 ...
- pythn print格式化输出---------"%s 和 % d" 都是什么意思?
pythn print格式化输出. %r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户显示输出的. 1. 打印字符串 print (" ...
- mysql过程函数的建立与使用
记一次数据库函数的学习:工作中接口出现问题,导致页面数据显示错误,跟踪代码查看,最后找到sql语句中,但是sql比较复杂,同时调用了大量的函数,以此记录mysql函数的学习. 首先创建一个函数 选择参 ...
- Android Studio遇到Failed to sync Gradle project错误时的解决办法
一 报错显示 Gradle sync failed: Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust th ...
- Chrome浏览器,处理input自动填充时带黄色背景色
/*Chrome浏览器打开网页,input自动赋值时,会带上屎黄色的背景色,下面是通过延长增加自动填充背景色的方式, 让用户感受不到样式的变化*/ input:-webkit-autofill, in ...
- 微信js-sdk开发获取签名和获取地理位置接口示例
###微信js-sdk开发获取签名和获取地理位置接口示例 前言:在做微信公众号开发时需要获取用户的地理位置信息,之前通过高德或者百度.腾讯等地图的api时发现经常获取不到,毕竟第三方的东西,后来改为采 ...
- GoldenDict词典的超级实用高级玩法----全文搜索功能
快捷键: Ctrl+Shift+F 菜单进入:搜索--全文搜索 模式:正则表达式 比如:我想知道地道的英文表达 请xx天/周/年假 给搜索框写入正则表达式 请(.)(天|周|年)假 就可以了 ...
- vmware station-ubuntu18.04 共享剪贴板
辞职在家休息,买了台新电脑,装个虚拟机,安装visual studio, android studio, qt, everything, noptepad++,hbuilder,ditto,xx-ne ...
- 生成文件的MD5值
import hashlib #########测试################# m = hashlib.md5() m.update(b"hello") m.update( ...
- github使用个人总结
1.获取github上面的源码时候,不能获取最新的,因为你的开发工作不一定是最新的要下载历史版本. 2.要使用里面的文件的时候,可以在目录后面url后面添加downloads 这样可以找到封装好的版本 ...