python正则表达式之re.match()与re.search()的用法及区别
作者:程序遇上智能星空
本文主要介绍了python正则表达式之re.match()与re.search()的用法及区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1、re.match()的用法
re.match()方法是从起始位置开始匹配一个模式,匹配成功返回一个对象,未匹配成功返回None。
re.match(pattern, string, flags=0)
参数说明:
-
pattern:匹配的正则表达式;
-
string:要匹配的字符串;
-
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{2}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test).group())
18年
Process finished with exit code 0
若将匹配模式改成:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test))
则返回结果为:
None
Process finished with exit code 0
这是因为re.match()仅从头开始匹配,由于起始位置处未找到符合匹配模式的内容,返回None。
2、re.search()的用法
re.search()方法是扫描整个字符串内进行模式匹配,只要找到第一个匹配就返回,如果字符串没有匹配,则返回None。
re.search(pattern, string, flags=0)
参数说明:
- pattern:匹配的正则表达式;
- string:要匹配的字符串;
- flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;
示例如下: