注册

详解Python re.fullmatch.MULTILINE函数:启用多行模式

Python的 re 模块 re.fullmatch.MULTILINE 函数

1. re.fullmatch函数

python的re模块提供的re.fullmatch函数可以用来判断某一字符串是否和某一正则表达式匹配。如果匹配则返回一个匹配对象。如果不匹配返回None。

其中函数的语法为:

re.fullmatch(pattern, string, flags=0)
  • pattern:需要匹配的正则表达式
  • string:需要匹配的字符串
  • flags:可选项,不同的flag可以改变正则表达式的匹配方式

2. MULTILINE标记

MULTILINE标记可以用来控制正则表达式中'^'和'$'这两个特殊符号的匹配方式。如果不使用该标记,'^'和'$'只能匹配字符串中的起始位置和结束位置,而不是以每行的开始位置和结束位置。

使用MULTILINE标记后,'^'和'$'就可以匹配每行字符串的开始和结束位置了。这个标记也可以使用缩写的'm'方式表示。

3. 示例

使用MULTILINE标记的情况下,'^'和'$'就可以匹配每行的开始和结束位置了。

import re

# 匹配以'A'开头和'E'结尾的字符串
pattern = r'^A.*E$'
text = 'ABC\nDEF\nGHI\n'
match = re.fullmatch(pattern, text, flags=re.M)
print(match) # None

# 匹配每行以'A'开头,以'E'结尾的字符串
pattern = r'^A.*E$'
text = 'ABC\nDEF\nGHI\n'
match = re.fullmatch(pattern, text, flags=re.M|re.S)
print(match) # 

可以看到,当使用MULTILINE标记时,'ABC'这一行可以匹配成功。而不使用标记时则不能成功。