Python正则表达式
Python正则表达式
菜鸟教程地址
Python 正则表达式 | 菜鸟教程 (runoob.com)
正则在线测试地址
在线正则表达式测试 (oschina.net)
常用操作符
操作符
. 表示任何单个字符
[] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a-z单个字符
[^] 非字符集。对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
* 前一个字符的0次或者无限次的扩展 abc*表示ab、abc、abcc、abcccc等等
+ 前一个字符的1次或者无限次的扩展 abc+表示 abc、abccc、abcc、abccccc等
? 前一个字符的0次或者1次扩展 abc?表示 ab、abc
| 左右表达式中的任意一个 abc|def表示abc、def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc
^ 匹配字符串开头 ^abc表示abc在一个字符串的开头
$ 匹配字符串结尾 abc$表示abc在一个字符串的结尾
() 分组标记内部只能使用|操作符 (abc)表示abc ,(abc|def)表示abc、def
\d 数字,等价于[0-9]
\w 单词字符,等价于[A-Za-z0-9_] 表示字符小写大写的a-z 和数字0-9以及下划线_
\b 匹配一个单词边界,也就是指单词和空格间的位置。 例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
正则实战练习
以0开头,然后是两个数字,然后是一个连字号"-",最后是8个数字
查找内容: 010-11111111
正则表达式: 0\d{2}-\d{8}
结果:
共找到 1 处匹配:
010-11111111查找内容: 1111010-11111111321
正则表达式: 0\d{2}-\d{8}
结果:
共找到 1 处匹配:
010-11111111查找内容: 010-11111
正则表达式: 0\d{2}-\d{8}
结果:
(没有匹配)
匹配以字母a开头的单词(注意是找单词,而不是在一个字符串中匹配字符)
查找内容: hello,world,apple,banana,AirPods,await
正则表达式: \ba\w*\b
结果:
共找到 2 处匹配:
apple
await
匹配刚好6个字符的单词
查找内容: hello,world,apple,banana,AirPods,await
正则表达式: \b\w{6}\b
结果:
共找到 1 处匹配:
banana
匹配1个或更多连续的数字
查找内容: this is a number11121aaa
正则表达式: \d+ 或者\d{1,}
结果:
共找到 1 处匹配:
11121
5位到12位QQ号
查找内容: 123456789125
正则表达式: ^[1-9]\d{4,11}$
结果:
共找到 1 处匹配:
123456789125
Python正则常用函数
re.match
从字符第一个开始匹配,匹配到返回对象,匹配不到返回None
testUrl = "http://www.baidu.com"
pattern = re.compile(r'b.*u')
print(re.match(pattern, testUrl))
print(re.match(r'http', testUrl))输出>>
None
<re.Match object; span=(0, 4), match='http'>
re.search
在字符串中搜索,返回匹配到的第一个对象,匹配不到返回None
testUrl = "http://www.baidu.com"
pattern = re.compile(r'b.*u')
print(re.search(pattern, testUrl))输出>>
<re.Match object; span=(11, 16), match='baidu'>
re.sub
替换字符串中的匹配的字符,返回替换后的字符串
testUrl = "http://www.baidu.com"
print(re.sub(r'\W+', "", testUrl))输出>>
httpwwwbaiducom
re.findall
返回所有匹配的结果列表
testUrl = "http://www.baidu.com"
print(re.findall(r'\w{4}', testUrl))输出>>
['http', 'baid']
实战
获取百度首页,匹配title标签中的内容
import requeststestUrl = "http://www.baidu.com"
req = requests.get(testUrl)
pattern = r'<title>(.*?)</title>'
print(re.findall(pattern, req.content.decode('utf-8')))输出>>
['百度一下,你就知道']
Python正则表达式相关推荐
- Python 正则表达式各种特殊符号 重点
Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...
- python 正则表达式 re.compile() 的使用
1 re.compile() 的解释: python 正则表达式 re.compile() 将正则表达式编译成一个Pattern规则对象,单独使用compile 没有意义,他生成的是一个规则,需要ma ...
- Python正则表达式,看这一篇就够了
作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...
- Python 正则表达式
最近研究Python爬虫,很多地方用到了正则表达式,但是没好好研究,每次都得现查文档.今天就专门看看Python正则表达式.本文参考了官方文档 re模块. 模式 首先正则表达式的语法我就不说了,这玩意 ...
- Python正则表达式初识(二)
前几天给大家分享了[Python正则表达式初识(一)],介绍了正则表达式中的三个特殊字符"^"."."和"*",感兴趣的伙伴可以戳进去看看, ...
- python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单
处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...
- python正则表达式re.sub用法
python正则表达式re.sub用法 https://cloud.tencent.com/developer/article/1382055 python正则表达式re.sub用法 全面的 http ...
- 【Python】一文读懂Python正则表达式常用用法
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 编辑:爱学AI 来源:geekvi 链接: www.segmentfault.co ...
- Python正则表达式常用的15个符号整理
http://blog.itpub.net/31403259/viewspace-2157778/ Python正则表达式常用的15个符号整理: 1. ? 匹配0次或一次前面的分组(问号在正则表达式中 ...
- Python正则表达式使用的四个基本步骤
http://blog.itpub.net/31403259/viewspace-2157701/ Python正则表达式使用的四个基本步骤 1.用import re导入正则表达式模块 ...
最新文章
- IOS沙盒Files目录说明和常用操作
- mac node版本管理
- 既然安卓是开源的 为何华为要 鸿蒙,安卓靠开源、免费赢得了天下,现在华为鸿蒙也是开源免费的! - 区块网...
- [转]Cocos2d-x观察者模式
- 如何快速完成整理笔记?
- 带你少走弯路:强烈推荐的Pytorch快速入门资料和翻译(可下载)
- 分布式系统优势及衡量指标
- android tag的使用方法,Android:如何使用Html.TagHandler?
- 沙洋有几个微服务群_集群 分布式 微服务
- jQuery 的选择器 元素选择器
- 斯维尔密码狗使用方法(附安装资源)
- 尚硅谷大数据项目之Flink实时数仓-踩坑记录和笔记记录
- 神通广大、卓有奇效的“mini-KMS_Activator_v1.051”(迷你KMS)初现江湖
- VCL语法教程——5.手持式1311编程器的支持
- QT3D场景快速绘制入门学习
- 你不能做宅男,因为你穷
- 【剑桥摄影协会】色彩管理之色彩空间
- ESP32 nvs 加密
- Oracle实例囚笼(Instance Caging)
- 怎么在一堆身份证中筛选出大于18岁的?
热门文章
- rtl驱动 ubuntu 禁用_ubuntu18.04系统中使用dkms安装wifi驱动rtl8723be的方法
- 交易系统开发(十二)——QuickFIX官方文档
- html 引入 svg矢量图,前端可视化——SVG矢量图技术
- elasticsearch 版本区别
- OpenStack在天河二号的大规模部署实践(转)
- 使用词向量嵌入模型,获得近义词
- S71500 PLC 与第三方设备 ModbusTCP 项目调试记录
- Mysql/Oracle——常用SQL语句
- 计算机专业毕业论文结尾,计算机毕业论文最后的总结.docx
- 如何写好一个综述,以一个综述为例