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函数可变参数定义及其参数传递方式实例详解
May 25 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
Python中的函数作用域
May 07 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
Python2与Python3的区别点整理
Dec 12 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
jupyter notebook的安装与使用详解
May 18 Python
Python如何获取文件路径/目录
Sep 22 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
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
Smarty模板语法详解
2019/07/20 PHP
phpinfo的知识点总结
2019/10/10 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
python实现websocket的客户端压力测试
2019/06/25 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
如何使用python切换hosts文件
2020/04/29 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
护理专业的自荐信
2013/10/22 职场文书
办理生育手续介绍信
2014/01/14 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
烹饪自我鉴定
2014/03/01 职场文书
英文推荐信格式范文
2014/05/09 职场文书
考察现实表现材料
2014/05/19 职场文书
交通志愿者活动总结
2014/06/27 职场文书
超市促销活动总结
2014/07/01 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL