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()
0
投稿

猜你喜欢

  • 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
  • asp之家 网络编程 m.aspxhome.com