python 包之 re 正则匹配教程分享
作者:autofelix 发布时间:2021-10-15 18:36:41
标签:python,re,正则,匹配
一、开头匹配
从字符串开头开始匹配
返回匹配对象;如果找不到匹配,则为None
import re
print(re.match('飞兔小哥', '飞兔小哥教你零基础学编程'))
print(re.match('学编程', '飞兔小哥教你零基础学编程'))
二、全匹配
匹配字符串是否和给定的字符一模一样
如果一模一样才返回匹配对象,如果找不到匹配,则为None
import re
print(re.fullmatch('飞兔小哥教你零基础学编程', '飞兔小哥教你零基础学编程'))
print(re.fullmatch('飞兔小哥', '飞兔小哥教你零基础学编程'))
三、部分匹配
只要在字符串中找到字符存在即可
找到返回匹配对象,如果找不到匹配,则为None
import re
print(re.search('autofelix', '飞兔小哥教你零基础学编程'))
print(re.search('飞兔小哥', '飞兔小哥教你零基础学编程'))
四、匹配替换
用正则表达式去匹配原始字符串,并把匹配到的内容替换
import re
# 去掉电话号码中的-
num = re.sub(r'\D', '', '188-1926-8053')
print(num)
# 18819268053
五、匹配替换返回数量
用正则表达式去匹配原始字符串,并把匹配到的内容替换
并且返回被替换掉的数量
import re
# 去掉电话号码中的-
num = re.subn(r'\D', '', '188-1926-8053')
print(num)
# (18819268053, 2)
六、分割字符串
按照正则表达式的规则来分割字符串,并返回列表
可以规定分割的次数
import re
print(re.split('a*', 'hello world'))
# ['', 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '']
print(re.split('a*', 'hello world', 1))
# ['', 'hello world']
七、匹配所有
在字符串中匹配所有符合正则表达式的对象
并把这些对象通过列表list的形式返回
import re
pattern = re.compile(r'\W+')
result1 = pattern.findall('hello world!')
result2 = pattern.findall('hello world!', 0, 7)
print(result1)
# [' ', '!']
print(result2)
# [' ']
八、迭代器匹配
在字符串中匹配所有符合正则表达式的对象
并把这些对象通过迭代器的形式返回
import re
pattern = re.compile(r'\W+')
result = pattern.finditer('hello world!')
for r in result:
print(r)
九、编译对象
把正则表达式编译成Pattern对象
import re
pattern = re.compile(r'\W+')
十、修饰符
re.I:忽略大小写
re.L:本地化识别匹配
re.M:多行匹配
re.S:使.匹配包括换行在内的所有字符
re.U:根据unicode字符解析字符
re.X:给予灵活的格式以便理解
import re
content = "Cats are smarter than dogs"
print(re.search(r'DOGS', content, re.M | re.I))
来源:https://blog.51cto.com/autofelix/5190716


猜你喜欢
- 前言matplotlib画图例默认的位置是在图中的各个角落,但有时图例位置会遮挡住图像而不符合我们的需求,需要对图例位置进行调整。代码如下:
- 前言当我们使用Python完成自己的原创的工具时,比如:端口扫描、弱口令爆破等。你是否想过添加自己的Logo,以及简要的帮助信息?如下:Sq
- vue中异步数据获取1、获取异步数据,通过async/await限制 import { fetchList } from '
- 在上篇文章给大家介绍过Django 多环境配置详解,感兴趣的朋友可以点击查阅,今天继续给大家介绍django 多环境配置的相关内容,本文重点
- Django url pathDjango 路由在 urls.py 配置path('浏览器地址栏表示URL', '处
- 1 :普通SQL语句可以用exec执行Select * from tableName exec('select * from tab
- AICodeHelper是一款AI编程助手,旨在帮助程序员提高他们的编码技能。简单的像尝试的代码直接问就行,但是一些复杂的,就得需要写技巧;
- 本文介绍了PHP开发中遇到的数组问题,这里介绍了判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。1. isset功能:判断变量是
- 原问题是这样的:如何用SQL语句(不是Oracle),求出下表每一行的5个字段中的最大值,最后生成一个新字段。例如:第一行最大值 -5.0
- 前言这些原则都是经历过实战总结而成每一条原则背后都是血淋淋的教训这些原则主要是针对数据库开发人员,在开发过程中务必注意一、核心原则1.尽量不
- 前言wx.gird.Gird是实现类似excel表格的库,扩展面很广,本文讲述它添加按钮,按钮响应的内容实现效果图如下:本文基于wxPyth
- 本文为大家分享了mysql8.0.13安装图文教程,供大家参考,具体内容如下1.1. 下载:我下载的是64位系统的zip包:下载地
- 都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。ChatGPT是一种基于大语言模型的生成式AI,换句话说它
- demo: <div v-for="item in temps" :key="
- 一、安装cuda1、在英伟达官网下载最新版的cuda驱动https://developer.nvidia.com/zh-cn/cuda-do
- 到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的
- 一:编译器 编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编
- 如果一个模型里包含了ManyToManyField,在admin后台可能会显示成object,例如解决方法:在定义这个类的时候,加多一个函数
- 本文实例讲述了Python实现的KMeans聚类算法。分享给大家供大家参考,具体如下:菜鸟一枚,编程初学者,最近想使用Python3实现几个
- ThinkPHP模板的in标签与range标签用于判断某个模板变量是否在某个范围之内。1.in标签ThinkPHP的in标签用于某个模板变量