您的当前位置:首页正文

python 正则

2023-01-11 来源:小奈知识网


我们会用术语 “matching”(“匹配”),指的是术

语 pattern-matching(模式匹配)。在 Python

专门术语中,有两种主要方法完成模式匹配:搜索(searc

hing)和匹配(matching)。搜索,即在字符

串任意部分中查找匹配的模式,而匹配是指,判断一个字符

串能否从起始处全部或部分的匹配某个

模式。搜索通过 search()函数或方法来实现,而匹配是

以调用 match()函数或方法实现的。

(?i) 是模式修饰符,表示不区分大小写

< 普通文本

/? /是普通文本,而?表示它前面的字符可有可无。/?在一起表示/可有可无

a 普通文本

\\b 单词边界

[^>]* [^>]表示匹配除了>以外的所有字符。*表示它前面的字符重复0到多次。[^>]*在一起表示匹配除了>以外的字符0到多次

> 普通字符

综上:(?i)]*>的意思是匹配以的字符,最后以>结尾的字符串。

比如:以上正则可以匹配和

re 模块的函数

compile(pattern,flags=0) 对正则表达式模式pattern进行编译,

flags是可选标志符,

并返回一个 regex 对象

re 模块的函数和 regex 对象的方法

match(pattern,string, flags=0) 尝试用正则表达式模式 pattern 匹配字符串 string,

Edit

By

Vheavens

Edit

By

Vheavens

flags 是可选标志符,如果匹配成功,则返回一个匹配对

象;否则返回 None

search(pattern,string, flags=0) 在字符串 string 中查找正则表达式模式 pattern 的

一次出现,flags 是可选标志符,如果匹配成功,则返回

一个匹配对象;否则返回 None

findall(pattern,string[,flags])

a

在字符串 string 中查找正则表达式模式 pattern 的所有

(非重复)出现;返回一个匹配对象的列表

finditer(pattern,string[, flags])

b

和 findall()相同,但返回的不是列表而是迭代器;对

于每个匹配,该迭代器返回一个匹配对象

split(pattern,string, max=0) 根据正则表达式 pattern 中的分隔符把字符 string 分割

为一个列表,返回成功匹配的列表,最多分割 max 次(默

认是分割所有匹配的地方)。

sub(pattern, repl, string, max=0) 把字符串 string 中所有匹配正则表达式 pattern 的

方替换成字符串 repl,如果 max 的值没有给出,

则对所有

匹配的地方进行替换(另外,请参考 subn(),它还会返回

一个表示替换次数的数值)。

group(num=0) 返回全部匹配对象(或指定编号是 num 的子组)

groups() 返回一个包含全部匹配的子组的元组(如果没有成功匹配,就返回一个空元

组)