Python元字符的用法实例解析


Posted in Python onJanuary 17, 2018

反斜杠的作用:

要想将一个元字符^当一个普通字符处理,加反斜杠

例如:

>>>import re
>>>r=r'\^abc'
>>>re.findall(r,'^abc ^abc ^abc')
['^abc','^abc','^abc']

\d匹配任何十进制数,它相当于类[0-9].
\D匹配任何非数字字符,它相当于类[^0-9]
\s匹配任何空白字符,他相当于类[\t\n\r\f\v]
\S匹配任何非空白字符,它相当于类[^\t\n\r\f\v]
\w匹配任何字母数字字符,它相当于类[a-zA-Z0-9_]
\W匹配任何非字母数字字符,它相当于类[^a-zA-Z0-9_]

>>>r=r'[0-9]'
>>>re.findall(r,'1234567890')
['1','2','3','4','5','6','7','8','9','0']

>>>r=r'\d'
>>>re.findall(r,'1234567890')
['1','2','3','4','5','6','7','8','9','0']
>>>r=r'^010-\d\d\d\d\d\d\d\d'
>>>re.findall(r,'010-87654321')
['010-87654321']
>>>re.findall(r,'010-8765432')
[]

>>>r=r'^010-\d{8}'#重复八次
>>>re.findall(r,'010-12345678')
['^010-12345678']

星号的作用:(*)

将前面的一个字符匹配零次或更多次。

>>>r=r'ab*'
>>>re.findall(r,'a')
['a']
>>>re.findall(r,'ab')
['ab']
>>>re.findall(r,'abbbbbb')
['abbbbbb']

加号的作用:(+)

表示匹配一次或更多次。

>>>r=r'ab+'
>>>re.findall(r,'a')
[]
>>>re.findall(r,'ab')
['ab']
>>>re.findall(r,'abbbb')
['abbbb']

电话号码中间的“-”问题:(可有可无)

>>>r=r'^010-*\d{8}'
>>>re.findall(r,'010-12345678')
['010-12345678']
>>>re.findall(r,'01012345678')
['01012345678']
>>>re.findall(r,'010---12345678')
['010---12345678']

问号的作用:(?)

匹配一次或零次;

>>>r=r'^010-?\d{8}$'
>>>re.findall(r,'010--12345678')
[]
>>>re.findall(r,'010-12345678')
['010-12345678']
>>>re.findall(r,'01012345678')
['01012345678']

做最小模式匹配:

贪婪模式匹配如下:

>>>r=r'ab+'
>>>re.findall(r,'abbbbbbbbbbb')
['abbbbbbbbbbb']

非贪婪模式匹配,用问号做最小匹配,如下:

>>>r=r'ab+?'
>>>re.findall(r,'abbbbbbbbbbb')
['ab']

>>>r=r'ab*?'
>>>re.findall(r,'abbbbbbbbbbbb')
['a']

花括号的用法:({m,n})

其中m和n是十进制整数。该限定符的意思是至少有m个重复,至多有n个重复。

>>>r=r'a{1,3}'#表示a重复一到三次
>>>re.findall(r,'a')
['a']
>>>re.findall(r,'aa')
['aa']
>>>re.findall(r,'aaa')
['aaa']
>>>re.findall(r,'aaaa')
['aaa','a']

分组:“(”和“)”

>>> import re
>>> email=r'\w{3}@\w+(\.com|\.cn)'#定义正则,(\.com|\.cn)表示一个分组;分组中做**或**操作,要么是.com,要么是.cn
>>> re.match(email,'www@owolf.com')#进行匹配
<_sre.SRE_Match object; span=(0, 13), match='www@owolf.com'>
>>> re.match(email,'www@owolf.cn')
<_sre.SRE_Match object; span=(0, 12), match='www@owolf.cn'>
>>> re.match(email,'www@owolf.org')
>>>  #返回空值
>>> re.findall(email,'www@owolf.com')
['.com']      #做匹配的时候优先返回分组中的数据
>>> re.findall(email,'www@owolf.cn')
['.cn']
>>>
>>> s='''
ajhfa kasjf owolf english=chinese yes  no print
lafl int=456 yes float
int=789 yes
owolf english=france yes  aklfl
'''#定义字符串
>>> r=r'owolf english=.+ yes' #定义正则
>>> re.findall(r,s)    #匹配正则
['owolf english=chinese yes', 'owolf english=france yes']     
>>> r=r'owolf english=(.+) yes'
>>> re.findall(r,s)
['chinese', 'france'] #利用分组优先返回分组中的数据,在爬虫中经常应用

总结

以上就是本文关于Python元字符的用法实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
python与js主要区别点总结
Sep 13 Python
python 将Excel转Word的示例
Mar 02 Python
90行Python代码开发个人云盘应用
Apr 20 Python
Python工程师面试必备25条知识点
Jan 17 #Python
python根据unicode判断语言类型实例代码
Jan 17 #Python
Python线性方程组求解运算示例
Jan 17 #Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 #Python
Python基于高斯消元法计算线性方程组示例
Jan 17 #Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 #Python
Python实现文件信息进行合并实例代码
Jan 17 #Python
You might like
php array_slice函数的使用以及参数详解
2008/08/30 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
2010/05/09 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
Yii框架安装简明教程
2020/05/15 PHP
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
node.js require() 源码解读
2015/12/13 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
微信小程序progress组件使用详解
2018/01/31 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
python多任务及返回值的处理方法
2019/01/22 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
仓库班组长岗位职责
2013/12/12 职场文书
高级工程师岗位职责
2013/12/15 职场文书
研究生毕业鉴定
2014/01/29 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
鲁冰花观后感
2015/06/10 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技