教你学会使用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和C++
Dec 14 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
Python实现分数序列求和
Feb 25 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
Python如何实现的二分查找算法
May 27 Python
浅谈Python 函数式编程
Jun 20 Python
django form和field具体方法和属性说明
Jul 09 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
PyQt5实现多张图片显示并滚动
Jun 11 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
由浅到深了解JavaScript类
2006/09/08 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
vue中appear的用法
2017/08/17 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
python字典的常用操作方法小结
2016/05/16 Python
Python字典简介以及用法详解
2016/11/15 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
英文求职信写作小建议
2014/02/16 职场文书
白酒市场营销方案
2014/02/25 职场文书
房屋公证委托书
2014/04/03 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
node快速搭建后台的实现步骤
2022/02/18 NodeJs