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 相关文章推荐
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Python中SQLite如何使用
May 27 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Django日志及中间件模块应用案例
Sep 10 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python-地图可视化组件folium的操作
Dec 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
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
提示$ is not defined错误分析及解决
2013/04/09 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python获取网页状态码示例
2014/03/30 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python类的动态修改的实例方法
2017/03/24 Python
python字符串的方法与操作大全
2018/01/30 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
init进程的作用
2015/08/20 面试题
小学教师自我鉴定
2013/11/07 职场文书
医院门卫岗位职责
2013/12/30 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
学习心理学的体会
2014/11/07 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书