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登录Dr.com思路以及代码分享
Jun 25 Python
Cpy和Python的效率对比
Mar 20 Python
Python中使用logging模块打印log日志详解
Apr 05 Python
python实现DES加密解密方法实例详解
Jun 30 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python中optparser库用法实例详解
Jan 26 Python
python 日期操作类代码
May 05 Python
python+selenium打印当前页面的titl和url方法
Jun 22 Python
python实现zabbix发送短信脚本
Sep 17 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
深入解析神经网络从原理到实现
Jul 26 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 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之第九天
2006/10/09 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
python简单验证码识别的实现方法
2019/05/10 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Django admin组件的使用
2020/10/24 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
一套VC试题
2015/01/23 面试题
社区母亲节活动记录
2014/03/06 职场文书
初三学习计划书范文
2014/04/30 职场文书
部门活动策划方案
2014/08/16 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
养成教育工作总结
2015/08/13 职场文书
高中政治教师教学反思
2016/02/23 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书