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中fileno()方法的使用
May 24 Python
深入浅析python with语句简介
Apr 11 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
去除python中的字符串空格的简单方法
Dec 22 Python
Python实现智慧校园自动评教全新版
Jun 18 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文件上传表单摘自drupal的代码
2011/02/15 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
iframe 异步加载技术及性能分析
2011/07/19 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Apache如何部署django项目
2017/05/21 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
python 显示数组全部元素的方法
2018/04/19 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
python实现快递价格查询系统
2020/03/03 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
《满井游记》教学反思
2014/02/26 职场文书
电子信息工程自荐信
2014/05/26 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
MySQL 数据类型详情
2021/11/11 MySQL