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在hadoop上跑起来
Jan 27 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
python3调用R的示例代码
Feb 23 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
对Python中画图时候的线类型详解
Jul 07 Python
python使用minimax算法实现五子棋
Jul 29 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
python实现tail -f 功能
Jan 17 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
用Python开发app后端有优势吗
Jun 29 Python
python中 .npy文件的读写操作实例
Apr 14 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
php字符串分割函数explode的实例代码
2013/02/07 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php批量上传的实现代码
2013/06/09 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
jQuery之ajax删除详解
2014/02/27 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
python提取照片坐标信息的实例代码
2019/08/14 Python
django修改models重建数据库的操作
2020/03/31 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
法制宣传日活动总结
2014/04/29 职场文书
财务情况说明书范文
2014/05/06 职场文书
英语教育专业自荐信
2014/05/29 职场文书
责任书格式
2015/01/29 职场文书
干部考核工作总结
2015/08/12 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技