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解决鸡兔同笼问题的方法
Dec 20 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
python多线程方式执行多个bat代码
Jun 07 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
Django 跨域请求处理的示例代码
May 02 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
python小程序基于Jupyter实现天气查询的方法
Mar 27 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 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
星际争霸中的热键
2020/03/04 星际争霸
深入php内核之php in array
2015/11/10 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
php报错502badgateway解决方法
2019/10/11 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
vue实现购物车加减
2020/05/30 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python游戏开发的五个案例分享
2020/03/09 Python
python的json包位置及用法总结
2020/06/21 Python
python中数字是否为可变类型
2020/07/08 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
质量主管工作职责
2014/09/26 职场文书
上课说话检讨书500字
2014/11/01 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
图解上海144收音机
2021/04/22 无线电