下面开始讲解Python的re
模块re.fullmatch()
函数。
1. 作用
re.fullmatch(pattern, string, flags=0)
函数用于判断字符串是否符合某一规则,即对整个字符串进行长度匹配,并且字符串中的所有字符都可以和模式中的对应字符相匹配。如果匹配成功,则返回匹配对象,否则返回None。
re.fullmatch()
是Python 3.4版本之后新添加的方法,相较于re.match()
和re.search()
方法更为严格,只有完全匹配成功才会返回匹配对象,而不会返回由匹配到的子串组成的列表。
其中,.end()
函数是re.MatchObject
对象的属性,用于返回匹配结束索引的位置。
2. 使用方法
2.1 函数语法
re.fullmatch()
的函数语法如下:
re.fullmatch(pattern, string, flags=0)
其中:
pattern
:用于匹配字符串的正则表达式模式;string
:待匹配的字符串;flags
:正则表达式的匹配模式(默认为0)。
2.2 返回值
如果匹配成功,则返回一个re.MatchObject
对象,否则返回None。
2.3 使用方式
下面提供两个例子,详细说明如何使用re.fullmatch()
和.end()
函数:
例1:
import re
pattern = r'[A-Z][a-z]*'
string = 'Hello World'
match_obj = re.fullmatch(pattern, string)
if match_obj:
print(match_obj.end())
else:
print('匹配失败')
输出结果为:
5
解析: 因为pattern
匹配规则为首字母是大写字母,后面可以有任意个小写字母,所以Hello
符合该规则,而World
不符合。因此,返回的匹配对象match_obj
中结束索引为5
,即'Hello'
的长度。
例2:
import re
pattern = r'[A-Z][a-z]*'
string = 'Good morning'
match_obj = re.fullmatch(pattern, string)
if match_obj:
print(match_obj.end())
else:
print('匹配失败')
输出结果为:
-1
解析: 因为pattern
匹配规则为首字母是大写字母,后面可以有任意个小写字母,而Good morning
首字母为小写字母,所以匹配失败返回None,因此无法输出结束索引,所以为-1
。
2.4 flags参数
flags
参数用来指定匹配模式。常用的匹配模式有:
re.I
:忽略大小写;re.M
:多行匹配;re.S
:让.
匹配包括换行符在内的所有字符。
总结
re.fullmatch()
函数用于对整个字符串进行长度匹配,并且字符串中的所有字符都可以和模式中的对应字符相匹配。.end()
函数是re.MatchObject
对象的属性,返回匹配结束索引的位置。常用的匹配模式有:忽略大小写、多行匹配和让.
匹配包括换行符在内的所有字符。