pyhton re模块
正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序员们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。
re的匹配语法 %re.name("匹配规则", "要匹配的字符串")
re.match() 从头开始匹配,即只匹配第一个值
re.search() 匹配包含,匹配到第一个就不往下匹配
re.findall() 把所有匹配到到的字符以列表的形式返回
re.splital() 以匹配到的字符当做列表分隔符
re.sub () 匹配字符并替换
re.fullmatch() 全部匹配
>>> import re >>> a = 'a2fho54d' >>> re.match('[0-9]',a) >>> re.match('a',a) <_sre.SRE_Match object; span=(0, 1), match='a'> >>> re.search('[0-9]',a) <_sre.SRE_Match object; span=(1, 2), match='2'> >>> re.findall('[0-9]',a) ['2', '5', '4']
View Code
如何将match和search方法返回的对象打印出来呢?
import re a = 'a2fho54d' re_res = re.search('[0-9]', a) if re_res:print(re_res.group()) ############## 2
View Code
'.'
默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
'^'
匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r
"^a"
,
"\nabc\neee"
,flags
=
re.MULTILINE)
'$'
匹配字符结尾,或e.search(
"foo$"
,
"bfoo\nsdfsf"
,flags
=
re.MULTILINE).group()也可以
'*'
匹配
*
号前的字符
0
次或多次,re.findall(
"ab*"
,
"cabb3abcbbac"
) 结果为[
'abb'
,
'ab'
,
'a'
]
'+'
匹配前一个字符
1
次或多次,re.findall(
"ab+"
,
"ab+cd+abb+bba"
) 结果[
'ab'
,
'abb'
]
'?'
匹配前一个字符
1
次或
0
次
'{m}'
匹配前一个字符m次
'{n,m}'
匹配前一个字符n到m次,re.findall(
"ab{1,3}"
,
"abb abc abbcbbb"
) 结果
'abb'
,
'ab'
,
'abb'
]
'|'
匹配|左或|右的字符,re.search(
"abc|ABC"
,
"ABCBabcCD"
).group() 结果
'ABC'
'(...)'
分组匹配,re.search(
"(abc){2}a(123|456)c"
,
"abcabca456c"
).group() 结果 abcabca456c
'\d' 匹配任何十进制数,它相当于类[0-9]
'\d+' 如果需要匹配一位或者多位数的数字时用
'\D' 匹配任何非数字字符,它相当于类[^0-9]
'\s' 匹配任何空白字符,它相当于类[\t\n\r\f\v]
'\S' 匹配任何非空白字符
'\w' 匹配包括下划线在内任何字母数字字符,它相当于类[a-zA-Z0-9_]
'\W' 匹配非任何字母数字字符包括下划线在内,它相当于类[^a-zA-Z0-9_]
操作代码如下:
>>> import re >>> re.match('.','fjfi34') <_sre.SRE_Match object; span=(0, 1), match='f'> >>> re.match('.','383449') <_sre.SRE_Match object; span=(0, 1), match='3'> >>> re.match('.','\fjidak') <_sre.SRE_Match object; span=(0, 1), match='\x0c'>
>>> re.match('..','abdf')
<_sre.SRE_Match object; span=(0, 2), match='ab'>
>>> re.search('^a','abgd') #表示匹配以a开头 <_sre.SRE_Match object; span=(0, 1), match='a'> >>> re.search('^ab','abghus') #此时等价于re.match('ab','abhufjj') <_sre.SRE_Match object; span=(0, 2), match='ab'> >>> re.search('^b','abghuus') #匹配不上 >>>
>>> re.search('b$','fsffb') #表示匹配以b结尾 <_sre.SRE_Match object; span=(4, 5), match='b'>
>>> re.search('a*','fhsbs') #表示匹配*前面的字符多次或0次
<_sre.SRE_Match object; span=(0, 0), match=''>
>>> re.search('a*','afhusd')
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> re.search('abc*','abchuccabcccug') #a必须匹配和b连着,b可以是0个或多个
<_sre.SRE_Match object; span=(0, 3), match='abc'>
......................
转载于:https://www.cnblogs.com/ydb258741/p/9240499.html
pyhton re模块相关推荐
- paramiko模块_玩转网络自动化之Netmiko模块
我们知道,服务器的硬件和操作系统软件已经完全解耦,硬件和软件可以分开购买,并进行按需安装. 但是网络设备专用性强,硬件和操作系统软件高度耦合,即使相同厂商的设备,不同类型网络设备间也是拥有不同的CLI ...
- python从键盘上输入五个数字打一成语_批量查询5个字成语首字母组成的.com域名...
.com域名无疑是最受欢迎的后缀,1至4个字母的组合已全部被抢注.好奇心驱使下,写了Python程序批量查询5个字成语首字母组成的.com域名的注册情况. 步骤1:抓取5个字的成语 详情见博文< ...
- Pyhton 内置 itertools 模块chain、accumulate、compress、drop、take等函数使用
Python 内置的 itertools 模块使用了 yield 生成器. 1. chain 拼接迭代器 chain 函数实现元素拼接,原型如下,参数 * 表示可变的参数: chain(*iterab ...
- Pyhton 模块和包
模块 每一个以扩展名 py 结尾额 Python 源代码文件都是一个模块 模块名 同样也是一个标识符,需要符合标识符的命名规则 在模块中定义的 全局变量.函数.类 都是提供给外接直接使用的工具 模块的 ...
- pyhton学习,day1作业,用户名密码登录模块
要求,通过用户名密码登录,登录错误3次,锁定用户名 1 # coding=utf-8 2 # Author: RyAn Bi 3 4 import os, sys #调用系统自己的库 5 6 acco ...
- python基础知识整理 第七节:单例设计模式、异常、模块、包、制作模块、文件
1.单例设计模式 单例设计模式就是为对象在内存中分配空间的时候,永远只会返回一个唯一的固定的内存空间.这样就能保证在内存中这个类的对象只有唯一的一份,这个就叫做单例.(为对象分配空间使用的是内置方法_ ...
- python安装pillow模块错误
安装的一些简单步骤就不介绍了,可以去搜索一下,主要就记录下我在安装pillow这一模块遇到的问题 1:安装好pillow后,安装过程没有出错 2:但是在python的IDLE输入from PIL im ...
- python 并行计算 multiprocessing、multiprocess模块 简介
目录 多进程才是真·并行 multiprocessing模块 1.创建子进程 2.进程间通信--数据共享 3.进程间通信--数据传递 4.锁(同步原语) 5.其他重要函数 multiprocess模块 ...
- 日常办公会用到的python模块-用 Python 自动化办公能做到哪些有趣或有用的事情?...
所有需要重复做两次的事情,都可以用程序代替我来完成. 场景1: 微信上处理的事情有很多都是重复的,又经常容易被这些琐事打断.于是我在 Python 程序里设定了一些关键词和相应的自动回复: /> ...
最新文章
- MATLAB从入门到精通-最速下降算法、牛顿算法、BFGS拟牛顿算法、共轭梯度算法无约束极值问题
- Android mergeDebugResources'. Error: java.util.concurrent.ExecutionException: com.android.ide.comm
- mysql把一个字段加到另一张表中_mysql如何能把一个表中的某一字段下的数据加入另一个表中相同字段下,条件是两表中的某字段相同?...
- Ruby-Metasploit的核心
- python淘宝cookies抢购_Python实现淘宝秒杀聚划算抢购自动提醒源码
- Mars的mp3实例
- testservice小项目总结
- Scrapy: 爬虫返回403错误
- Django入门:第十一章、基础模板
- JavaWeb kuangshen汇总
- C文件操作——字符 读写函数 getc和putc(是一个宏的实现)
- 只用html如何实现音乐播放,如何使用html实现音乐播放
- 怎样批量修改文件名不要括号?
- 【程序设计基础 学习笔记】单向链表(TBC)
- 2020-10-18Go语言接口
- AS 5637.1跟AS 3837是什么关系?
- Day16 正则表达式
- 为什么工业互联网平台要配备MQTT网关?
- 在一页纸上打印8页PPT讲义的方法
- 【概率论与数理统计】第二章知识点复习与习题