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 04 Python
python正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
python脚本设置系统时间的两种方法
Feb 21 Python
python中关于for循环的碎碎念
Jun 30 Python
python3的输入方式及多组输入方法
Oct 17 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
在python中使用with打开多个文件的方法
Jan 07 Python
python可视化实现代码
Jan 15 Python
python数据分析:关键字提取方式
Feb 24 Python
python实现超级马里奥
Mar 18 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 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数据序列化测试实例详解
2017/08/12 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
Django中的ajax请求
2018/10/19 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
postman和python mock测试过程图解
2020/02/22 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
init进程的作用
2015/08/20 面试题
2014离婚协议书范文
2014/09/10 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
财务负责人岗位职责
2015/02/03 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
详解Java实践之适配器模式
2021/06/18 Java/Android
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis