教你学会使用Python正则表达式


Posted in Python onSeptember 07, 2017

教你学会使用Python正则表达式

今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。

re模块

教你学会使用Python正则表达式

re.search

经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。

教你学会使用Python正则表达式

re.match

re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。

教你学会使用Python正则表达式

常用正则字符意义 a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] \ | ( ) . 英文句号,匹配任意字符,不包含'\n' \w 匹配'word'字符,[a-zA-Z0-9] \W 匹配非'word'字符 \b 匹配'word'和'non-word'之间边界 \s 匹配单个whitespace字符,space, newline, return, tab, form [\n\r\t\f] \S 匹配non-whitespace字符 \t, \n, \r 匹配tab, newline, return \d 匹配数字[0-9] ^ 匹配字符串开头 $ 匹配字符串结尾 重复

‘+' 一或多次, ‘*' 零或多次, ‘?' 零或一次

方括号[]

教你学会使用Python正则表达式

[]类似于or

Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.

教你学会使用Python正则表达式

Group Extraction圆括号()

有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。

教你学会使用Python正则表达式

findall and groups

()和findall()结合,如果包括一或多个group,就返回a list of tuples。

教你学会使用Python正则表达式

给re.search加^之后是一样的。

re.sub

re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含\1或者\2来代替相应的group,然后实现局部替换。 教你学会使用Python正则表达式

Python 相关文章推荐
python self,cls,decorator的理解
Jul 13 Python
Python设计模式之门面模式简单示例
Jan 09 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
使用turtle绘制五角星、分形树
Oct 06 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
python使用turtle库绘制奥运五环
Feb 24 Python
Keras搭建自编码器操作
Jul 03 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
python操作链表的示例代码
Sep 27 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
用Python可视化新冠疫情数据
Jan 18 Python
Python基础学习之常见的内建函数整理
Sep 06 #Python
Python升级导致yum、pip报错的解决方法
Sep 06 #Python
Python实现求两个csv文件交集的方法
Sep 06 #Python
Python中的is和==比较两个对象的两种方法
Sep 06 #Python
Python中表示字符串的三种方法
Sep 06 #Python
通过Python实现自动填写调查问卷
Sep 06 #Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 #Python
You might like
十天学会php(3)
2006/10/09 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
Python实现在线程里运行scrapy的方法
2015/04/07 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
python编程线性回归代码示例
2017/12/07 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python排序函数的使用方法详解
2020/12/11 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
护理中职生求职信范文
2014/02/24 职场文书
二手房买卖协议书
2014/04/10 职场文书
合作协议书范文
2014/08/20 职场文书
2014年班组工作总结
2014/11/20 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
学校国庆节活动总结
2015/03/23 职场文书
中标通知书范本
2015/04/17 职场文书
家长反馈意见及建议
2015/06/03 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
Python绘制分类图的方法
2021/04/20 Python