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

目录
  • 1、re.match()的用法
  • 2、re.search()的用法
  • 3、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()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈Python中re.match()和re.search()的使用及区别

    1.re.match() re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None. 包含的参数如下: pattern: 正则模型 string : 要匹配的字符串 falgs : 匹配模式 match() 方法一旦匹配成功,就是一个match object对象,而match object对象有以下方法: group() 返回被 RE 匹配的字符串 start() 返回匹配开始的位置 end() 返回匹配结束的位置 span()返

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

    目录 1.re.match()的用法 2.re.search()的用法 3.re.match()与re.search()的区别 1.re.match()的用法 re.match()方法是从起始位置开始匹配一个模式,匹配成功返回一个对象,未匹配成功返回None. 语法: re.match(pattern, string, flags=0) 参数说明: pattern:匹配的正则表达式: string:要匹配的字符串: flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等

  • Python3中正则模块re.compile、re.match及re.search函数用法详解

    本文实例讲述了Python3中正则模块re.compile.re.match及re.search函数用法.分享给大家供大家参考,具体如下: re模块 re.compile.re.match. re.search re 模块官方说明文档 正则匹配的时候,第一个字符是 r,表示 raw string 原生字符,意在声明字符串中间的特殊字符不用转义. 比如表示 '\n',可以写 r'\n',或者不适用原生字符 '\n'. 推荐使用 re.match re.compile() 函数 编译正则表达式模式,

  • python中数组array和列表list的基本用法及区别解析

    目录 1. 定义 2. 两者不同点 3. 两者相同点 4. 基本用法 4.1 数组array的基本用法 4.2 列表list的基本用法 1. 定义 (1)数组array: 是同类型数据的有限集合(2)列表list: 是一系列按特定顺序排列的元素组成,可以将任何数据放入列表,且其中元素之间没有任何关系. 2. 两者不同点 (0)列表是直接可以在python中使用的:数组是python中numpy库的,所以需要import numpy后,才能使用:(1)列表中的元素数据类型可以不一样:数据中的元素数

  • python正则表达式match和search用法实例

    本文实例讲述了python正则表达式match和search用法.分享给大家供大家参考.具体分析如下: python提供了2中主要的正则表达式操作:re.match 和 re.search. match :只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none: search :将字符串的所有字串尝试与正则表达式匹配,如果所有的字串都没有匹配成功,返回none,否则返回matchobject:(re.search相当于perl中的默认行为) import re d

  • Python 正则表达式 re.match/re.search/re.sub的使用解析

    From Python正则表达式 re.match(pattern, string, flags=0) 尝试从字符串起始位置匹配一个模式:如果不是起始位置匹配成功,则 re.match() 返回none. 匹配成功,re.match() 返回一个匹配的对象,否则返回None. pattern - 匹配的正则表达式 string - 要匹配的字符串 flags - 标志位,控制正则表达式的匹配方式,如,是否区分大小写,多行匹配等. e.g. #!/usr/bin/python # -*- codi

  • python正则表达式re.search()的基本使用教程

    1 re.search() 的作用: re.search会匹配整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None 从源码里面可以看到re.search()方法里面有3个参数 pattern: 匹配的规则, string : 要匹配的内容, flags 标志位 这个是可选的,就是可以不写,可以写, 比如要忽略字符的大小写就可以使用标志位 flags 的主要内容如下 flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为: re.I 忽略大小写 re.L 表示特殊字

  • Python正则表达式re.search()用法详解

    re.search():匹配整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None pattern: 匹配的规则, string : 要匹配的内容, flags 标志位 这个是可选的,就是可以不写,可以写, 比如要忽略字符的大小写就可以使用标志位 flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为: re.I 忽略大小写 re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境 re.M 多行模式 re.S 即为 . 并且包括换行符

  • JavaScript正则表达式小结(test|match|search|replace|split|exec)

    学JavaScript正则的好文一篇:http://www.cainiao8.com/web/js_note/js_regular_expression.html test:测试string是否包含有匹配结果,包含返回true,不包含返回false. <script type="text/javascript"> var str = "bbs.byr.cn"; var reg = /b/; var ret = reg.test(str); alert(r

  • python正则表达式re.match()匹配多个字符方法的实现

    1.  *表示匹配任意多个字符   \d*表示匹配任意多个数字字符 import re text = "123h1ello world" text1 = "123Hello world456" text2 = "hello world" res = re.match("\d*", text) res1 = re.match("\d*", text1) res2 = re.match("\d*&qu

随机推荐