python正则表达式之re.match()与re.search()的用法及区别
作者:程序遇上智能星空 时间:2022-05-14 13:21:46
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:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.search(test_pattern, test).group())
输出:
2019年
Process finished with exit code 0
这是因为re.search()扫描整个字符串,找到符合匹配模式的第一个匹配就返回了。
3、re.match()与re.search()的区别
re.match()方法要求必须从字符串的开头进行匹配,如果字符串开头不符合模式规则,整个匹配就失败了,函数返回None;
re.search()并不要求必须从字符串的开头进行匹配,而是扫描整个字符串,直到找到第一个匹配。
来源:https://blog.csdn.net/kevinjin2011/article/details/125598411
标签:python,re.match(),re.search()


猜你喜欢
Python绘图示例程序中的几个语法糖果你知道吗
2021-01-18 17:15:25

C#调用Python程序传参数获得返回值
2023-10-11 06:49:52
最全的mysql查询语句整理
2024-01-27 03:10:01
Python中PyQt5/PySide2的按钮控件使用实例
2023-03-04 16:27:44

Javascript 注册事件浅析
2024-04-28 10:20:22
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2022-02-12 02:32:55
10个不为人知的Google失败作品
2008-05-24 16:56:00

python中常用的九种预处理方法分享
2022-06-27 17:50:23

网页特效文字之—粗糙字
2013-07-23 04:34:56

通过模版字符串及JSON数据进行目标内容整理的一个小方法
2010-01-12 16:55:00
交互设计师应该具备哪些素质
2009-03-12 12:21:00
浅析Python 简单工厂模式和工厂方法模式的优缺点
2023-08-04 00:15:00

Pytorch转onnx、torchscript方式
2022-05-03 11:10:43

Python实现自动发消息自定义内容的操作代码
2023-10-17 18:01:53

sql server对字段的添加修改删除、以及字段的说明
2012-01-05 18:50:52
基于vue-ssr的静态网站生成器VuePress 初体验
2024-05-09 09:32:38
pytorch中的weight-initilzation用法
2022-03-22 23:28:24
教你用Type Hint提高Python程序开发效率
2023-10-21 03:42:24
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2024-05-09 09:38:16

javascript forEach通用循环遍历方法
2024-04-29 13:19:14