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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
解读Python中degrees()方法的使用
May 18 Python
python抓取百度首页的方法
May 19 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
django文档学习之applications使用详解
Jan 29 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Python数据分析模块pandas用法详解
Sep 04 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
python之django路由和视图案例教程
Jul 26 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
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
python logging日志模块的详解
2017/10/29 Python
scrapy爬虫实例分享
2017/12/28 Python
python3爬虫怎样构建请求header
2018/12/23 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
opencv python图像梯度实例详解
2020/02/04 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
python3中布局背景颜色代码分析
2020/12/01 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
什么是serialVersionUID
2016/03/04 面试题
C#公司笔试题
2014/03/28 面试题
药学专业大学生个人的自我评价
2013/11/04 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
安全生产先进个人材料
2014/02/06 职场文书
环保倡议书500字
2014/05/15 职场文书
高考励志标语
2014/06/05 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
先进党组织事迹材料
2014/12/26 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server