python中re正则表达式
1、re匹配的语法
re.math 从头开始匹配,没有匹配到返回None
re.seach 匹配包含,,没有匹配到返回None
re.findall 把所有匹配到的字符,以列表的形式返回,没有匹配到返回空列表[]
re.splitall 以匹配到的字符当做列表分隔符
re.sub 匹配字符并替换
re.fullmath 全部匹配
s='adds231f'
print(re.match("[0-9]",s))
print(re.search("[0-9]",s))
print(re.findall("[0-9]",s)) 结果:
None
<_sre.SRE_Match object; span=(4, 5), match=''>
['', '', '']
***注意****
match和search一旦匹配成功,就是一个match object对象,而match object对象有以下方法:
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置
group() 返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串
math、seach匹配到后返回的是一个对象,若要获取匹配到的值要取greap()
s='rasfd23fd5'
m=re.match("[0-9]",s)
ss=re.search("[0-9]",s)
if m:
print("math方法:"+m.group())
if ss:
print("search方法:"+ss.group()) 结果:
search方法:2
2、re常用表达式公式
'.' 匹配除\n以外的任意一个字符(从左开始),2个 '.’ 就匹配2个字符
s='rasfd23fd5'
print(re.search('.',s).group())
print(re.search('..',s).group()) 结果:
r
ra
' ^' 匹配字符串开头。在多行模式中匹配每一行的开头
print(re.search('^r','rasfd23fd5'))
print(re.match('r','rasfd23fd5'))
print(re.search('^rs','rasfd23fd5'))
结果:
<_sre.SRE_Match object; span=(0, 1), match='r'>
<_sre.SRE_Match object; span=(0, 1), match='r'>
None
'$'匹配字符串末尾,在多行模式中匹配每一行的末尾
print(re.search('d$','rasfdg'))
print(re.search('g$','rasfdg'))
结果:
None
<_sre.SRE_Match object; span=(5, 6), match='g'>
'*' 匹配前一个字符0或多次
print(re.search('a*','rarrdrg')) #要匹配a开关
print(re.search('rar*','rarardrg'))
print(re.search('rar*','rarrdrg'))
print(re.search('rar*','rarrrdrg')) #匹配ra,rar,rarr,rarr,rarrr......等
结果:
<_sre.SRE_Match object; span=(0, 0), match=''>
<_sre.SRE_Match object; span=(0, 3), match='rar'>
<_sre.SRE_Match object; span=(0, 4), match='rarr'>
<_sre.SRE_Match object; span=(0, 5), match='rarrr'>
'+' 匹配前一个字符1或多次
print(re.search('a+','rarrdrg'))
print(re.search('rar+','sraardrg'))
print(re.search('rar+','srardrg'))
print(re.search('rar+','srarrdrg'))
print(re.search('rar+','srarrrdrg'))
结果:
<_sre.SRE_Match object; span=(1, 2), match='a'>
None
<_sre.SRE_Match object; span=(1, 4), match='rar'>
<_sre.SRE_Match object; span=(1, 5), match='rarr'>
<_sre.SRE_Match object; span=(1, 6), match='rarrr'>
'?' 匹配前一个字符1或0次
print(re.search('rar?','sraardrg'))
print(re.search('rar?','srardrg'))
print(re.search('rar?','srarrdrg'))
print(re.search('rar?','sarrdrg'))
结果:
<_sre.SRE_Match object; span=(1, 3), match='ra'>
<_sre.SRE_Match object; span=(1, 4), match='rar'>
<_sre.SRE_Match object; span=(1, 4), match='rar'>
None
'{m}匹配前一个字符m次
print(re.search('a{2}','sraardrg'))
print(re.search('a{2}','srarardrg'))
结果:
<_sre.SRE_Match object; span=(2, 4), match='aa'>
None
'{n,m}匹配前一个字符n到m次
print(re.search('a{1,2}','sraardrg'))
print(re.search('a{1,2}','srarardrg'))
print(re.search('a{1,2}','sraaardrg'))
结果:
<_sre.SRE_Match object; span=(2, 4), match='aa'>
<_sre.SRE_Match object; span=(2, 3), match='a'>
<_sre.SRE_Match object; span=(2, 4), match='aa'>
'|' 匹配|右边或左边的字符
print(re.search('ar|dr','sraardrg'))
print(re.search('ar|dr','srdddrdrg'))
结果:
<_sre.SRE_Match object; span=(3, 5), match='ar'>
<_sre.SRE_Match object; span=(4, 6), match='dr'>
‘(....)’ 分组匹配,
被括起来的表达式将作为分组,从表达式左边开始没遇到一个分组的左括号“(”,编号+1.
分组表达式作为一个整体,可以后接数量词。表达式中的|仅在该组中有效。
k=re.search('([A-z]+)([0-9]+)','Terry913')
k_group =k.group()
k_groups =k.groups()
print(k_group) #-->Terry913
print(k_groups) #->('Terry', '913')
反斜杠\的作用:
反斜杠后边跟元字符去除特殊功能;(即将特殊字符转义成普通字符)
反斜杠后边跟普通字符实现特殊功能;(即预定义字符)
引用序号对应的字组所匹配的字符串。
|
\w |
匹配字母数字及下划线 |
|
\W |
匹配非字母数字及下划线 |
|
\s |
匹配任意空白字符,等价于 [\t\n\r\f]. |
|
\S |
匹配任意非空字符 |
|
\d |
匹配任意数字,等价于 [0-9]. |
|
\D |
匹配任意非数字 |
|
\A |
匹配字符串开始 |
|
\Z |
匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。 |
|
\z |
匹配字符串结束 |
|
\G |
匹配最后匹配完成的位置。 |
|
\b |
匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
|
\B |
匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
3 特殊分组

python中re正则表达式的更多相关文章
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容. 下面是在Python中使用 ...
- python模块 re模块与python中运用正则表达式的特点 模块知识详解
1.re模块和基础方法 2.在python中使用正则表达式的特点和问题 3.使用正则表达式的技巧 4.简单爬虫例子 一.re模块 模块引入; import re 相关知识: 1.查找: (1)find ...
- Python学习-38.Python中的正则表达式(二)
在Python中,正则表达式还有较其他编程语言有特色的地方.那就是支持松散正则表达式了. 在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了.而松散正则表达式就是解决这一问题的办法. 用上一 ...
- Python学习-37.Python中的正则表达式
作为一门现代语言,正则表达式是必不可缺的,在Python中,正则表达式位于re模块. import re 这里不说正则表达式怎样去匹配,例如\d代表数字,^代表开头(也代表非,例如^a-z则不匹配任何 ...
- [Python]网络爬虫(七):Python中的正则表达式教程
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8929576#t4 接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一 ...
- [Python]网络爬虫(七):Python中的正则表达式教程(转)
接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...
- 在python中使用正则表达式(转载)
https://www.cnblogs.com/hanmk/p/9143514.html 在python中使用正则表达式(一) 在python中通过内置的re库来使用正则表达式,它提供了所有正则表 ...
- python中的正则表达式(re模块)
一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...
- python中关于正则表达式三
2015年8月14日 11:10 7.2正则表达式操作 正则表达式使用反斜杠字符'\'来暗示一些特殊的形式或者允许特殊的字符使用但是没有调用它们特殊的意思.在字符串常量中的相同目标的字符的python ...
随机推荐
- VSFTP的使用
一.基本安装 1.安装服务 yum -y install vsftpd //centos Redhat apt-get install vsftpd //debian ubuntu 2.开启服务 se ...
- Android Studio中依赖引起错误
请参阅 https://blog.csdn.net/taowuhua0505/article/details/82424351
- win10 vs2015源码编译tesseract4.0
1.安装软件 cmake 下载地址 cppan 下载地址 安装完毕后,需要将cmake.exe和cppan.exe加入环境变量PATH中 cmake简介 CMake全称为“cross platf ...
- PVID和VID彻底研究(上) ——PVID的作用及和VID的区别
http://blog.csdn.net/cybertan/article/details/8348752 另外一篇 netgear的官方文档: http://club.netgear.cn/Know ...
- 游戏中的沉浸(Flow in Games)
转自:https://www.jianshu.com/p/4c52067f6594 作者:陈星汉(JenovaChen) 本论文的主旨在于提供一种独特的方法论,用以指导游戏设计中的以玩家为中心的动态难 ...
- TensorFlow的介绍和安装
TensorFlow概要 由google Brain开源,设计初衷是加速机器学习的研究,2015年11月在GitHub上开源,2016年4月分布式版本,2017年发布了1.0版本,趋于稳定. Tens ...
- asp源码微信扫码授权登陆电脑版
网站接入微信扫码登录并获取用户基本信息(完美绕过微信开放平台)电脑版网站实现微信扫码登录,注册会员还要设密码太麻烦,会员也记不住密码,采用微信扫码登录网站更方便,会员无需设密码,用他的微信做为系统登录 ...
- Windows下搭建Python虚拟环境
一.安装使用 virtualenv 1. 安装 virtualenv pip install virtualenv 2. 新建虚拟环境 virtualenv env1 用 Python3 创建虚拟环境 ...
- React基础概念
Hello Wrold ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); ...
- java 英文单词拼写纠正框架(Word Checker)
Word Checker 本项目用于单词拼写检查. 项目简介 word checker 用于单词拼写检查. Github 地址 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可 ...