Python3 - 正则表达式

Python3 - 正则表达式 首页 / Python3入门教程 / Python3 - 正则表达式

正则表达式可以定义为用于在字符串中搜索模式的字符序列。 re模块提供了在python程序中使用正则表达式的支持。如果使用正则表达式时发生错误,则re模块会引发异常。

必须导入 re 模块才能在python中使用正则表达式函数。

import re 

正则函数

python中使用了以下正则表达式函数。

SN函数说明
1match此方法将字符串中的正则表达式模式与可选标志匹配。如果在字符串中找到匹配项,则返回true;否则返回false。
2search如果在字符串中找到匹配项,则此方法返回匹配对象。
3 findall它返回一个列表,其中包含字符串中某个模式的所有匹配项。
4split返回一个列表,其中每个匹配项中的字符串均已拆分。
5 sub替换字符串中的一个或多个匹配项。

可以通过使用元字符,特殊序列和集合的混合来形成正则表达式。

无涯教程网

元(Meta)字符

元字符是具有指定含义的字符。

MetacharacterDescription
[]它代表字符集。"[a-z]"
\它代表特殊的顺序。"\r"
.它表示在某个特定位置存在任何字符。"Ja.v."
^它表示出现在字符串开头的模式。"^Java"
$它表示出现在字符串末尾的模式。"point"
*它表示字符串中模式的零次或多次出现。"hello*"
+它代表字符串中一个或多个模式的出现。"hello+"
{}指定的模式出现的次数。"java{2}"
|它表示存在此字符。"java|point"
()分组

特殊序列

特殊序列是包含\后跟一个字符的序列。

字符说明
\A如果指定的字符出现在字符串的开头,则返回匹配项。
\b如果指定的字符出现在字符串的开头或结尾,则返回匹配项。
\B如果指定的字符出现在字符串的开头而不是结尾,则返回匹配项。
\d如果字符串包含数字[0-9],则返回匹配项。
\D如果字符串中不包含数字[0-9],则返回匹配项。
\s如果字符串包含任何空格字符,则返回匹配项。
\S如果字符串不包含任何空格字符,则返回匹配项。
\w如果字符串包含任何单词字符,则返回匹配项。
\W It r如果字符串不包含任何单词,则返回一个匹配项。
\Z如果指定的字符位于字符串的末尾,则返回匹配项。

Sets

set是在方括号内给出的一组字符。它代表特殊含义。

SN设置说明
1 [arn]如果字符串包含集合中的任何指定字符,则返回匹配项。
2 [a-n]如果字符串包含a到n之间的任何字符,则返回匹配项。
3 [^ arn]如果字符串包含a,r和n以外的字符,则返回匹配项。
4 [0123]如果字符串包含任何指定的数字,则返回匹配项。
5 [0-9]如果字符串包含0到9之间的任何数字,则返回匹配项。
6 [0-5] [0-9]如果字符串包含00到59之间的任何数字,则返回匹配项。
10 [a-zA-Z]如果字符串包含任何字母(小写或大写),则返回匹配项。

findall()函数

此方法返回一个列表,其中包含字符串中某个模式的所有匹配项的列表。它按照找到的顺序返回模式。如果没有匹配项,则返回一个空列表。

考虑以下示例。

import re

str = "How are you. How is everything"

matches = re.findall("How", str)

print(matches)

print(matches)

输出:

['How', 'How']

Match对象

匹配对象包含有关搜索和输出的信息。如果找不到匹配项,则返回None对象。

import re

str = "How are you. How is everything"

matches = re.search("How", str)

print(type(matches))

print(matches) #matches is the search object

输出:

<class '_sre.SRE_Match'>
<_sre.SRE_Match object; span=(0, 3), match='How'>

Match对象方法

与Match对象关联的方法如下。

  1. span()    -  它返回包含匹配开始和结束位置的元组。
  2. string()  -  它返回传递给函数的字符串。
  3. group()  -  返回找到匹配项的字符串部分。
import re

str = "How are you. How is everything"

matches = re.search("How", str)

print(matches.span())

print(matches.group())

print(matches.string)

输出:

(0, 3)
How
How are you. How is everything

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出区块链 -〔陈浩〕

OpenResty从入门到实战 -〔温铭〕

分布式技术原理与算法解析 -〔聂鹏程〕

小马哥讲Spring核心编程思想 -〔小马哥〕

职场求生攻略 -〔臧萌〕

物联网开发实战 -〔郭朝斌〕

大厂设计进阶实战课 -〔小乔〕

Web 3.0入局攻略 -〔郭大治〕

工程师个人发展指南 -〔李云〕

好记忆不如烂笔头。留下您的足迹吧 :)