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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
最基础的Python的socket编程入门教程
Apr 23 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Python中Unittest框架的具体使用
Aug 27 Python
Python读取csv文件实例解析
Dec 30 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
python学习将数据写入文件并保存方法
Jun 07 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
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
让您的菜单不离网站
2006/10/03 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
pip install命令安装扩展库整理
2021/03/02 Python
模具设计与制造专业应届生求职信
2013/10/18 职场文书
校园招聘策划书
2014/01/09 职场文书
加拿大留学自荐信
2014/01/28 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL