教你学会使用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中的文件和目录操作实现代码
Mar 13 Python
基于python编写的微博应用
Oct 17 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
python获取代理IP的实例分享
May 07 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
Python爬虫爬取百度搜索内容代码实例
Jun 05 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
python pillow库的基础使用教程
Jan 13 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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
跟我学Laravel之路由
2014/10/15 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
Node.js模块加载详解
2014/08/16 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
javascript基本语法
2016/05/31 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
查摆剖析材料范文
2014/09/30 职场文书
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL