您现在的位置是:网站首页> 编程资料编程资料
python正则表达式之re.match()与re.search()的用法及区别_python_
2023-05-26
296人已围观
简介 python正则表达式之re.match()与re.search()的用法及区别_python_
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()并不要求必须从字符串的开头进行匹配,而是扫描整个字符串,直到找到第一个匹配。
到此这篇关于python正则表达式之re.match()与re.search()的用法及区别的文章就介绍到这了,更多相关python re.match()与re.search()内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关内容
- Python3 re.search()方法的具体使用_python_
- Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决_python_
- pandas中df.rename()的具体使用_python_
- pandas 修改列名的实现示例_python_
- python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南_python_
- 详解django中视图函数的FBV和CBV_python_
- pycharm创建并使用虚拟环境的详细图文教程_python_
- conda创建环境、安装包、删除环境步骤详细记录_python_
- python使用pandas读写excel文件的方法实例_python_
- YOLOv5改进之添加SE注意力机制的详细过程_python_
