教你学会使用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序列之list和tuple常用方法以及注意事项
Jan 09 Python
Python实现去除代码前行号的方法
Mar 10 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python 全文检索引擎详解
Apr 25 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
让代码变得更易维护的7个Python库
Oct 09 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python 实现矩阵按对角线打印
Nov 29 Python
在Python中利用pickle保存变量的实例
Dec 30 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新手上路(十二)
2006/10/09 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP会话处理的10个函数
2015/08/11 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
深入探讨前端框架react
2015/12/09 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Django后台admin的使用详解
2019/07/08 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
django创建超级用户过程解析
2019/09/18 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
领导欢迎词致辞
2015/01/23 职场文书
异地恋情人节寄语
2015/02/28 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
安全教育主题班会总结
2015/08/14 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
js作用域及作用域链工作引擎
2022/07/07 Javascript