这些标志修饰符重要用在正则表达式处置惩罚函数的 flag 参数中,为可选参数。多个标志可以通过按位 OR(|) 来指定,如 re.I|re.M,被设置成 I 和 M 标志。
三、re模块
Python 提供了 re 模块用于实现正则表达式的操作。在实现时,可以使用 re 模块提供的方法,如 search()、match()、findall() 等,举行字符串处置惩罚,也可以先使用 re 模块的 compile() 方法将模式字符串转换为正则表达式对象,然后再使用该正则表达式对象的相关方法来操作字符串。re 模块在使用时,须要先用 import 语句引入,具体代码如下:
# 导入正则表达式re模块# 须要匹配的字符串string = "Tina is a good girl, she is cool, clever, and so on..."match = re.compile(r'\w*oo\w*') # 创建正则表达式对象print(match.findall(string)) # 打印全部包含"oo"的单词
# 导入正则表达式re模块# ('AA3456abcdef', 2)print(re.subn('[1-2]', 'A', '123456abcdef')) # 打印元组,包含新字符串与更换次数# I have A, I have B ,I have Cprint(re.sub('g.t', 'have', 'I get A, I got B ,I gut C')) # 打印新字符串# ('I have A, I have B ,I have C', 3)print(re.subn('g.t', 'have', 'I get A, I got B ,I gut C')) # 打印元组,包含新字符串与更换次数
# 导入正则表达式re模块pattern = re.compile('[1-2]') # 数值更换表达式,更换字符串中的1-2pattern2 = re.compile('g.t') # 字幕更换表达式,更换字符串中的get、got、gut# 须要匹配的字符串string = '123456abcdef'string2 = 'I get A, I got B ,I gut C'print(pattern.subn('A', string)) # 打印元组,包含新字符串与更换次数 ('AA3456abcdef', 2)print(pattern2.sub('have', string2)) # 打印新字符串 I have A, I have B ,I have Cprint(pattern2.subn('have', string2)) # 打印元组,包含新字符串与更换次数 ('I have A, I have B ,I have C', 3)
Match.group() 方法用于获取 Match 对象中一个或多个匹配的子组。假如只有一个(0~99)参数,效果就是一个字符串;假如有多个参数,效果就是一个元组(每个参数对应一个项);假如没有参数,组 1 默认到 0(整个匹配都被返回)。假如一个组 N 参数值为 0,相应的返回值就是整个匹配字符串;假如一个组号是负数或超出组的最大长度,则给出越界错误;假如正则表达式中的一个组匹配了多个值,则相应的组只生存最后匹配的值。语法格式如下:
In [37]: match.group?
Docstring:
group([group1, ...]) -> str or tuple.
Return subgroup(s) of the match by indices or names.