Python 正则表达式

liusarazhang 2020-06-14

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

re 模块使 Python 语言拥有全部的正则表达式功能。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re.match 函数

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

参数:

pattern  匹配的正则表达式

string     要匹配的字符串

flags      标志位,用于控制正则表达式的匹配方式

注 我们同样可以使用groups()或 group(num)匹配对象函数来获取匹配的表达式

group (num = 0)   匹配的整个表达式字符串,group()可以一次输入多个组号,这种情况下他将返回一个包含那些组所对应值的元组

groups()          返回一个包含所以小组字符串的元组,从1到所含的小组号

re.search方法

扫描整个字符串并返回第一个成功的匹配

参数:

pattern  匹配的正则表达式

string     要匹配的字符串

flags      标志位,用于控制正则表达式的匹配方式

注 我们同样可以使用groups()或 group(num)匹配对象函数来获取匹配的表达式

group (num = 0)   匹配的整个表达式字符串,group()可以一次输入多个组号,这种情况下他将返回一个包含那些组所对应值的元组

groups()          返回一个包含所以小组字符串的元组,从1到所含的小组号

re.match 与re.search的区别

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

检索和替换

python 的 re模块提供了re,sub用于替换字符串的匹配项

参数:

pattern: 正则中的模式字符串。

repl : 替换的字符串,也可以作为一个函数/

string : 要呗查找替换的原始字符串

count :  模式匹配后替换的最大次数 ,默认 0表示替换所有的匹配。

re.complie 函数

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

参数:

pattern : 一个字符串形式的正则表达式

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等。具体参数为:

1. re.l 忽略大小写

2. re,L 表示特殊字符集 \w ,  \W , \b , \B , \s , \S 依赖于当前环境

3. re.M 多行模式

4. re.S 即为 . 并且保活换行符在内的任意字符( . 不包括换行符)

5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

6. re.X 为了增加可读性,忽略空格和 # 后面的注释

findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

参数:

string : 待匹配的字符串。

pos : 可选参数,指定字符串的起始位置,默认为 0。

endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

参数:

pattern : 匹配的正则表达式

string : 要匹配的字符串

flags 标志位,用于控制正则表达式的匹配方式

re.split

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

参数:

pattern : 匹配的正则表达式

string : 要匹配的字符串

maxsplit : 分隔次数,maxsplit = 1  分隔一次,默认为0 .不限制次数。

flags 标志位,用于控制正则表达式的匹配方式

原创为:https://www.runoob.com/python/python-reg-expressions.html

相关推荐