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通过pil模块获得图片exif信息的方法
Mar 16 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
python字典的常用操作方法小结
May 16 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
python中执行shell的两种方法总结
Jan 10 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
Python连接Impala实现步骤解析
Aug 04 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
python实现excel公式格式化的示例代码
Dec 23 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
Matlab如何实现矩阵复制扩充
Jun 02 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简单提示框alert封装函数
2010/08/08 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php中如何执行linux命令详解
2018/11/06 PHP
JS与框架页的操作代码
2010/01/17 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
用js实现in_array的方法
2013/11/05 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
用Eclipse写python程序
2018/02/10 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python 重定向获取真实url的方法
2018/05/11 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
基于Python中的yield表达式介绍
2019/11/19 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
学习python需要有编程基础吗
2020/06/02 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
网络书店创业计划书
2014/02/07 职场文书
5s标语大全
2014/06/23 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技