python正则表达式之re.match()与re.search()的用法及区别

 更新时间:2022年08月15日 15:37:26   作者:程序遇上智能星空  
本文主要介绍了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:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;

示例如下:

#!/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()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Jupyter加载文件的实现方法

    Jupyter加载文件的实现方法

    这篇文章主要介绍了Jupyter加载文件的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 最大K个数问题的Python版解法总结

    最大K个数问题的Python版解法总结

    这篇文章主要介绍了最大K个数问题的Python版解法总结,以最大K个数问题为基础的算法题目在面试和各大考试及竞赛中经常出现,需要的朋友可以参考下
    2016-06-06
  • python经典100题之皮球掉落的几种解法

    python经典100题之皮球掉落的几种解法

    这篇文章主要给大家介绍了关于python经典100题之皮球掉落的几种解法,这个问题相信不少人都可以从网络上找到相对应的答案本文提供了3种解法,需要的朋友可以参考下
    2023-11-11
  • Python对接PicGo实现图片自动加水印并上传操作示例

    Python对接PicGo实现图片自动加水印并上传操作示例

    这篇文章主要为大家介绍了Python对接PicGo实现图片自动加水印并上传的操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • opencv函数threshold、adaptiveThreshold、Otsu二值化的实现

    opencv函数threshold、adaptiveThreshold、Otsu二值化的实现

    这篇文章主要介绍了opencv函数threshold、adaptiveThreshold、Otsu二值化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python表达式的优先级详解

    Python表达式的优先级详解

    在本篇文章里小编给大家整理了关于Python表达式的优先级的知识点内容,需要的朋友们可以学习下。
    2020-02-02
  • Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

    Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

    这篇文章主要介绍了Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法,本文代码实例图文相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 浅谈python3.6的tkinter运行问题

    浅谈python3.6的tkinter运行问题

    今天小编就为大家分享一篇浅谈python3.6的tkinter运行问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 快速掌握python权限功能设计实战指南

    快速掌握python权限功能设计实战指南

    在处理权限控制时,装饰器能帮助我们以一种统一且简洁的方式管理不同用户对系统资源的访问权限,本文将通过几个简单的示例逐步展示如何利用Python装饰器实现从基础到复杂的权限控制功能
    2024-01-01
  • 详解使用 pyenv 管理多个版本 python 环境

    详解使用 pyenv 管理多个版本 python 环境

    本篇文章主要介绍了详解使用 pyenv 管理多个版本 python 环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论