【编程】Python3 正则表达式使用笔记
前言
Python 从1.5版本开始使用re模块来处理正则表达式。
我们可以使用“re模块”或“re.compile方法”来创建正则表达式对象(re.RegexObject),然后通过调用相应方法来处理字符数据。(关于正则表达式语法的相关内容,可以参考这篇文章,本文不再赘述)
1 # 使用re模块直接调用相应方法处理正则表达式
2 re.match()
3
4 # 使用compile方法创建正则表达式对象,调用相应方法处理正则表达式
5 RegexObject = re.compile()
6 RegexObject.match()
7
8 #当正则表达式成功匹配后,会返回一个MatchObject对象,可以通过调用以下方法获取匹配结果
9 group() 获得一个或多个分组匹配的字符串
10 groups() 从第1个分组开始,将匹配到的所有字符串以元组的形式返回
11 start() 获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引)
12 end() 获取分组匹配的子串在整个字符串中的结束位置
13 span() 返回 (start(group), end(group))
功能函数
re.compile(pattern, flags)
用于编译正则表达式,生成一个正则表达式对象。
1 #参数:
2 pattern: 一个字符串形式的正则表达式
3 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
4
5 #示例
6 obj = re.compile("123")
7 strr = obj.match("123a456").group()
8 print(strr) #123
re.match(pattern, string, flags=0)
从字符串的起始位置开始匹配,如果不是起始位置匹配成功的话,返回none。
1 #参数
2 pattern: 正则表达式
3 string: 要匹配的字符串
4 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
5
6 #示例
7 strr = re.match("123", "123a456").group()
8 print(strr) #123 (只能从字符串头部开始匹配,否则返回none)
re.search(pattern, string, flags=0)
从整个字符串开始匹配,返回第一个成功匹配的结果。
1 #参数
2 pattern: 正则表达式
3 string: 要匹配的字符串
4 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
5
6 #示例
7 strr = re.search("abc", "123abc456abc").group()
8 print(strr) #abc (有多个符合时,只返回第一个匹配的结果)
re.findall(pattern, string, flags=0)
从整个字符串开始匹配,将成功匹配的所有子串用列表返回,如果匹配失败返回空列表。
1 #参数
2 pattern: 正则表达式
3 string: 要匹配的字符串
4 pos: 可选参数,指定字符串的起始位置,默认为0
5 endpos: 可选参数,指定字符串的结束位置,默认为字符串长度
6
7 #示例
8 strr = re.findall("abc", "123abc456abc")
9 print(strr) #['abc', 'abc'] (有多个符合时,返回所有匹配的结果)
10
11 obj = re.compile("abc")
12 strr = obj.findall("123abc456abc", 0, 8)
13 print(str2) #['abc'] (指定起始位置和结束位置后,只有第一个abc能成功匹配)
re.finditer(pattern, string, flags=0)
从整个字符串开始匹配,将成功匹配的所有子串用一个迭代器返回,如果匹配失败返回空迭代器。
1 #参数
2 pattern: 正则表达式
3 string: 要匹配的字符串
4 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
5
6 #示例
7 it = re.finditer("abc", "123abc456abc")
8 for strr in it:
9 print(strr.group()) #abc abc
re.sub(pattern, repl, string, count=0, flags=0)
从整个字符串开始匹配,并使用指定字符串替换成功匹配的结果。
1 #参数
2 pattern: 正则表达式
3 repl: 用于替换的字符串(也可以是一个函数)
4 string: 用于查找后被替换的原始字符串
5 count: 可选,成功匹配后要替换的次数,默认0表示替换所有的匹配结果
6 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
7
8 #示例
9 strr = re.sub("abc", "", "123abc456abc")
10 print(strr) #123456
re.split(pattern, string, maxsplit=0, flags=0)
从整个字符串开始匹配,用成功匹配的子串对整个字符串进行分割,分割结果用列表返回。
1 #参数
2 pattern: 正则表达式
3 string: 要匹配的字符串
4 maxsplit: 可选,分隔次数,maxsplit=1 分隔一次,默认为0,不限制次数
5 flags: 可选,表示匹配模式,比如忽略大小写,多行模式等
6
7 #示例
8 strr1 = re.split("abc", "123abc456abc")
9 strr2 = re.split("abc", "123abc456abc", 1)
10 print(strr1) #['123', '456', '']
11 print(strr2) #['123', '456abc']
参考链接
https://www.runoob.com/python3/python3-reg-expressions.html
【编程】Python3 正则表达式使用笔记的更多相关文章
- python3 正则表达式学习笔记
re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. ~匹配成功re.match方法返回一个匹配的对象,否则返回No ...
- Python3正则表达式学习笔记
学习前准备:导入re模块 import re 一.re的核心函数 1 - re.compile(pattern[, flags]) 编译正则表达式,速度快 2 - re.match(pattern, ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍
python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- 《Java编程思想》读书笔记(二)
三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- 《Linux/Unix系统编程手册》读书笔记 目录
<Linux/Unix系统编程手册>读书笔记1 (创建于4月3日,最后更新4月7日) <Linux/Unix系统编程手册>读书笔记2 (创建于4月9日,最后更新4月10日) ...
- 《Linux/Unix系统编程手册》读书笔记9(文件属性)
<Linux/Unix系统编程手册>读书笔记 目录 在Linux里,万物皆文件.所以文件系统在Linux系统占有重要的地位.本文主要介绍的是文件的属性,只是稍微提及一下文件系统,日后如果有 ...
随机推荐
- day11 事件相关笔记
day11 事件上 事件的概述 事件是指代一个东西的操作被另外一个东西监听以后的一个过程(事件),这个过程可以完成对应的操作(处理函数)事件监听器是一个标准的观察者模式(observer)也被称为订阅 ...
- python常用数据结构模块--collections
import collections ''' python常用数据结构模块--collections collections是日常工作中的重点.高频模块,常用类型有: 计数器(Counter) 双向队 ...
- dev gridControl控件 常用使用方法及设置(实时更新)
dev gridControl控件 常用使用方法及设置(实时更新) 新增方法: +1.GridControl中GridView的指定列自动排序功能 gridView1.BeginSort();//事务 ...
- BUUCTF-[极客大挑战 2019]Http
一道考察http请求头X-Forwarded-For字段和Referer字段User-Agent字段的题目 一.基础知识 X-Forwarded-For(XFF)又名XFF头 1)概述:X-Forwa ...
- Nginx负载均衡4种方案
1.轮询 轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器. 配置的例子如下:http{ upstream sampleapp { ...
- ts的装饰器
console.log('装饰器.......') // 装饰器就是一个方法,可以注入到类,方法,属性上来拓展类,属性,方法,参数的功能 // 常见:类装饰器,属性装饰器,方法装饰器,参数装饰器 // ...
- 思科IPsecVPN建立
实验拓扑 实验目标: 1.不配置中间的三个路由器的路由实现router0和router2的vpn隧道 2.PC0能够ping通PC1 实验IP预定: PC0 10.1.1.1/24 PC1 20.1. ...
- C# 抽象类小谈
最近在做一个测试系统,就是读取功率计上的数据,在上位机软件上显示出来. 电脑界面不是我们这次的主讲就略过,我们这里主要讲一个类的实现. 最开始领导给了一个 远方的三相功率计 给我让我写上位机,很简单, ...
- PowerShell学习笔记一_cmdlet、管道、如何入门
PowerShell文件: .ps1 脚本文件 .psm1 模块文件 .psd1 模块描述文件 cmdlet(命令行) 组成: 动词-名词,例如: 1. Get-Service(获取所有服务),类似于 ...
- 一个新App上线应该注意什么?
一个新App上线应该关注哪些地方: 功能使用上无大问题遗留 用户使用体验尚佳 (前两条属于普通app更新也需要关注的点) 用户需要有反馈的入口,比如app内的反馈.用户可以直接联系到对应负责人进行反馈 ...