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封装shell命令实例分析
May 05 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
pyqt5自定义信号实例解析
Jan 31 Python
python中的&amp;&amp;及||的实现示例
Aug 07 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
Python如何合并多个字典或映射
Jul 24 Python
通过代码实例了解Python异常本质
Sep 16 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
python中24小时制转换为12小时制的方法
Jun 18 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 Python
Python加密与解密模块hashlib与hmac
Jun 05 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防止sql注入之过滤分页参数实例
2014/11/03 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
关于Vue中axios的封装实例详解
2019/10/20 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
从零学Python之入门(五)缩进和选择
2014/05/27 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
linux环境下Django的安装配置详解
2019/07/22 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
敬老院院长事迹材料
2014/05/21 职场文书
计划生育标语
2014/06/23 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
导游欢送词
2015/01/31 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis