Python必备知识点:从零带你学习正则表达式


1、正则简介

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了==re== 模块,它提供 Perl 风格的正则表达式模式,可使用==import re==导入==re==模块。


2、方法

正则表达式常见模式
在这里插入图片描述
特殊字符
在这里插入图片描述

正则表达式修饰符 - 可选标志
在这里插入图片描述

2.1、match()

re.match 尝试从字符串的==起始位置==匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

在这里插入图片描述
在这里插入图片描述

==’.’ :匹配任意一个字符(除了\n)==
在这里插入图片描述
在这里插入图片描述

==/d:匹配一个数字==
在这里插入图片描述
==/D:匹配一个非数字==
在这里插入图片描述

==/s:匹配空白==
在这里插入图片描述

==\d+:匹配多个数字==
在这里插入图片描述


2.2、search()

re.search ==扫描整个字符串==并返回第一个成功的匹配。

函数语法

re.search(pattern, string, flags=0)

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

在这里插入图片描述

成功匹配一次就返回,不会继续匹配

==re.match与re.search的区别==

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。


2.3、检索和替换

re 模块提供了re.sub用于替换字符串中的匹配项。

语法

re.sub(pattern, repl, string, count=0, flags=0)

参数

  1. pattern : 正则中的模式字符串。
  2. repl : 替换的字符串,也可为一个函数。
  3. string : 要被查找替换的原始字符串。
  4. count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

将text中的5替换成777
在这里插入图片描述

在这里插入图片描述


2.4、compile()

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

语法格式

re.compile(pattern[, flags])

参数

  1. pattern : 一个字符串形式的正则表达式
  2. flags,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

在这里插入图片描述


2.5、findall()

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
==注意==: match 和 search 是匹配一次 findall 匹配所有。

语法格式

findall(string[, pos[, endpos]])

参数

  1. string : 待匹配的字符串。
  2. pos : 可选参数,指定字符串的起始位置,默认为 0。
  3. endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

在这里插入图片描述


2.6、split()

split 方法按照能够匹配的子串将字符串分割后返回列表

语法格式

re.split(pattern, string[, maxsplit=0, flags=0])

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
maxsplit 分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

在这里插入图片描述


2.7、正则表达式修饰符 - 可选标志

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。

在这里插入图片描述
在这里插入图片描述


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!
process=image/format,png#pic_center)

(完)