Python 正则表达式大全,值得收藏
1 前言
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
上面都是官方的说明,博主自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都需要用到正则表达式来处理数据。
python的正则表达式则是re模块了:
re 模块使 Python 语言拥有全部的正则表达式功能。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
2 基本语法
2.1 match函数
只从字符串的最开始与pattern进行匹配,下面是函数的语法 :
re.match(pattern, string, flags = 0)
这里是参数的描述 :
pattern - 这是要匹配的正则表达式。
string - 这是字符串,它将被搜索用于匹配字符串开头的模式。
flags - 可以使用按位OR(|)指定不同的标志。这些是修饰符,如下表所列。
re.match 函数在成功时返回匹配对象,失败时返回None。使用match(num)或groups()函数匹配对象来获取匹配的表达式。
示例
#未从初始位置匹配,会返回None
import reline = 'i can speak good english'
matchObj = re.match(r'\s(\w*)\s(\w*).*',line)
if matchObj:print('matchObj.group() :',matchObj.group())print('matchObj.group() :',matchObj.group(1))print('matchObj.group() :',matchObj.group(2))print('matchObj.group() :',matchObj.group(3))
else:print('no match!')
#从初始位置开始匹配
import reline = 'i can speak good english'
matchObj = re.match(r'(i)\s(\w*)\s(\w*).*',line)
if matchObj:print('matchObj.group() :',matchObj.group())print('matchObj.group() :',matchObj.group(1))print('matchObj.group() :',matchObj.group(2))print('matchObj.group() :',matchObj.group(3))
else:print('no match!')
2.2 search 函数
与match()工作的方式一样,但是search()不是从最开始匹配的,而是从任意位置查找第一次匹配的内容。下面是这个函数的语法 :
re.match(pattern, string, flags = 0)
这里是参数的描述 :
pattern - 这是要匹配的正则表达式。
string - 这是字符串,它将被搜索用于匹配字符串开头的模式。
flags - 可以使用按位OR(|)指定不同的标志。这些是修饰符,如下表所列。
re.search函数在成功时返回匹配对象,否则返回None。使用match对象的group(num)或groups()函数来获取匹配的表达式。
示例
import reline = 'i can speak good english'
matchObj = re.search('(.*) (.*?) (.*)',line)
if matchObj:print('matchObj.group() :',matchObj.group())print('matchObj.group() :',matchObj.group(1))print('matchObj.group() :',matchObj.group(2))print('matchObj.group() :',matchObj.group(3))
else:print('no match!')
2.3 sub 函数
使用正则表达式re模块中的最重要的之一是sub。
re.sub(pattern, repl, string, max=0)
此方法使用repl替换所有出现在RE模式的字符串,替换所有出现,除非提供max。此方法返回修改的字符串。
示例
import reline = 'i can speak good english'
speak = re.sub(r'can','not',line)
print(speak)
speak1 = re.sub(r'\s','',line) #替换所有空格
print(speak1)
3 特殊类语法
3.1 字符类
3.2 特殊字符类
3.3 重复匹配
3.4 非贪婪重复
这匹配最小的重复次数:
3.5 圆括号分组
3.6 反向引用
与以前匹配的组再次匹配
3.7 锚点
需要指定匹配位置。
3.8 带括号的特殊语法
Python正则表达式大全就总结到这里,快去学习吧!!!
Python 正则表达式大全,值得收藏相关推荐
- web前端/移动端H5博客专家博客大全--值得收藏的前端技术大牛博客地址
web前端/移动端H5博客专家博客大全--值得收藏的前端技术大牛博客地址 Huang Jie Blog .Com-前端开发 http://www.huangjieblog.com/?feed=r ...
- 11个技巧让你编写出更好的Python代码,值得收藏!!
在本教程中,我们将展示11个技巧来编写更好的Python代码!我们展示了许多最佳实践,它们通过使代码更加简洁和更具python风格来改进代码.以下是所有技巧的概述: 1)使用enumerate()而不 ...
- c 语言学习大全 值得收藏的文章
语言学习大全 C 语言的基础语法 第一部分 软件的安装 1.推荐使用 visual studio 编辑器 2.Vc6++ 3.学校 自己教学用的软件 第二部分 入门hello world 内容 流程就 ...
- python for循环加速_干货总结,24招加速你的Python代码,值得收藏
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...
- Excel 各种密码的破解,各种大全值得收藏!(亲测有效)
本文介绍在 Excel 的多个文件版本中破解各类密码,包含文件的查看.只读密码,工作表.工作簿的保护密码,以及 VBA 工程密码.内容非常全面,建议你收藏.文件作者加密码是防止数据被查看,修改,所以, ...
- python正则表达式大全(常用数字、字符、常用的需求包括手机号、邮箱、电话号码、身份证号等)
一.正则表达式基础字符代表的意思 \w 匹配所有的字母 \W 匹配所有非字母 \d 匹配所有的数字 \D 匹配所有非数字 \s 空格 \S 匹配所有非空格 . 任意除换行符(\n) \. 表示点符号, ...
- BadUsb程序大全-值得收藏
获取方式在文章末尾 何为BadUsb 简介 通过硬件直接插入对方电脑,让对方电脑执行代码,达到干扰.控制主机或者窃取信息等目的. 威胁 BadUSB的威胁在于:恶意代码存在于U盘的固件中,PC上的杀毒 ...
- Windows CMD命令大全(值得收藏)
命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...
- Python 库大全
作者:Lingfeng Ai 链接:http://www.zhihu.com/question/24590883/answer/92420471 来源:知乎 著作权归作者所有.商业转载请联系作者获得授 ...
- 分享6 个值得收藏的 Python 代码
1.类有两个方法,一个是 new,一个是 init,有什么区别,哪个会先执行呢? 1 class test(object): def __init__(self): print(" ...
最新文章
- Selenium+PhantomJS使用时报错原因及解决方案
- c++连连看游戏_用Python玩连连看是什么效果?
- JQuery Basic Features Quick Walkthrough
- 训练不出结果_工业设计师如何训练自己的设计思维? 问答
- c语言项目为什么要build?(gcc、makefile、cmake(qmake)、CMakeLists.txt)(qmake、cmake、qbs区别解析)(qmake还是cmake,mingw作用)
- 串口、COM口、TTL和RS-232的区别详解
- 美团点评酒旅数据仓库建设实践
- shell 当中的比较运算
- 塑料浮船坞行业调研报告 - 市场现状分析与发展前景预测
- 没来得及整理的一些网站
- (转)在NGUI使用图片文字(数字、美术字)(直接可用于UILable)
- oracle 中execute immediate 是什么意思?
- 怎样彻底帮妹子解决weditor的安装的问题
- visio教程仓库流程图_教你使用visio 2013绘制产品流程图
- 数据仓库系列之总线架构
- kali 控制安卓手机拍照,查看定位,获取通信录,以及其他
- 小技巧帮助你轻松卸载ie8+还原旧版
- 经典兔子问题有一对兔子从出生后第3个月起每个月都生一对兔子
- Win10跳过开机登录界面
- 导出word中图片的方法