教你学会使用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中的for 循环
Jun 09 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python记录程序运行时间的三种方法
Jul 14 Python
python生成二维码的实例详解
Oct 29 Python
python实现NB-IoT模块远程控制
Jun 20 Python
python3.x实现base64加密和解密
Mar 28 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
python是否适合网页编程详解
Oct 04 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
python 读取、写入txt文件的示例
Sep 27 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代码审核的详细介绍
2013/06/13 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
redux.js详解及基本使用
2019/05/24 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python Tkinter GUI编程入门介绍
2015/03/10 Python
centos7之Python3.74安装教程
2019/08/15 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python configparser模块常用方法解析
2020/05/22 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
写给领导的感谢信
2015/01/22 职场文书
会计专业自荐信范文
2019/05/22 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技