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+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
python实现批量解析邮件并下载附件
Jun 19 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python Django里CSRF 对应策略详解
Aug 05 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
python中使用.py配置文件的方法详解
Nov 23 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 Python
Python+OpenCV实现图片中的圆形检测
Apr 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
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python中的迭代器漫谈
2015/02/03 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
计算机网络专业推荐信
2013/11/24 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
承诺书范文
2014/06/03 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技