re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)

函数参数说明:

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法 描述
group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
None

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"

以上实例执行结果如下:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)

函数参数说明:

参数 描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.search方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法 描述
group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配 print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
(11, 14)

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs"; searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I) if searchObj: print "searchObj.group() : ", searchObj.group() print "searchObj.group(1) : ", searchObj.group(1) print "searchObj.group(2) : ", searchObj.group(2) else: print "Nothing found!!"

以上实例执行结果如下:

searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

实例

#!/usr/bin/python import re line = "Cats are smarter than dogs"; matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj: print "match --> matchObj.group() : ", matchObj.group() else: print "No match!!" matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj: print "search --> searchObj.group() : ", matchObj.group() else: print "No match!!"

以上实例运行结果如下:

No match!!
search --> searchObj.group() :  dogs

https://www.runoob.com/python/python-reg-expressions.html

re.match函数 re.search方法 区别相关推荐

  1. 28Python正则表达式、正则表达式对象、正则表达式修饰符、表达式模板、表达式实例、match函数、search方法、检索和替换、repl、compile、findall等

    28Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. ...

  2. python re match groups_python re.match与re.search的区别

    re.match与re.search的区别 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配. i ...

  3. python---正则表达式(re.match与re.search的区别)

    文章目录 前言 一.re.match正则匹配 二.re.search正则匹配 三.re.match与re.search区别 前言 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则 ...

  4. JavaScript中的match方法和search方法

    search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的 ...

  5. index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数

    VLOOKUP 职场里面用的太频繁的,是必须掌握使用的函数公式,在这个函数的使用过程中,有时候用起来也不是很方便,比如下面两个场景 ❶逆向查找匹配 左边是员工编号,姓名,工资表格数据,现在需要根据姓名 ...

  6. python search返回值_python正则表达式--match search方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern,str ...

  7. Excel中offset函数的使用方法

    Excel中offset函数的使用方法听语音 你还在为Excel中offset函数的使用方法而苦恼吗,今天小编教你Excel中offset函数的使用方法,让你告别Excel中offset函数的使用方法 ...

  8. python中match函数的用法_pythonre.match函数是什么,了解pythonmatch函数的使用

    与之前的文章<Python正则表达式详解,告诉你Python正则表达式是什么?>联动,本文讲述了python re.match函数的使用方法,并附带了表格与实例来解析Python matc ...

  9. re.match函数讲解

    之前一直对re.match函数的匹配方法感到困惑,今天用具体的例子来讲解一下re.match函数匹配到的不同内容: 第一组代码 import reline = "Cats are smart ...

最新文章

  1. java和python的比较-Python和Java就业前景对比
  2. Theano2.1.1-基础知识之准备工作
  3. 【译】 Google: Still in The Search 搜索巨人Google的伟大转变 (四)
  4. 备份mysql数据库的思路
  5. IDEA多Module的Language Level的问题
  6. Unity3D-射线效果
  7. 基于OpenCV及Python的数独问题识别与求解(一)图像预处理
  8. ubuntu Nvidia 显卡驱动失效问题
  9. iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了
  10. Cygwin安装笔记
  11. Linux 修改环境变量设置的三种方式
  12. 深入理解PHP原理之PHP与WEB服务器交互
  13. 测试投入度量元的选择
  14. Solr之Facet与FacetPivot的使用和区别
  15. 机器学习算法——决策树算法详细介绍,并使用sklearn实现案例预测,可视化决策树
  16. linux编辑状态a,linux 操作
  17. Bootstrap—实现圆角、圆形头像和响应式图片
  18. UA OPTI570 量子力学23 角动量基础
  19. 完美云主机购买小技巧分享
  20. java画二维坐标_在图形界面中绘制二维的坐标系统

热门文章

  1. Tomcat(三):tomcat处理连接的详细过程
  2. 枚举中关于toRaw()和fromRaw(3)编译出错
  3. gson解析mysql城市json数据_Gson解析复杂的json数据
  4. 1亿数据 redis 内存_redis 存1亿数据库
  5. java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...
  6. gitee markdown 笔记_picGo+github+坚果云打造自己的云笔记
  7. python debugger_彻底搞定反调试之无限debugger
  8. python爬虫requestsget_精讲Python中的requests方法
  9. python数字组合算法_面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?...
  10. python打包发布到手机_Python打包操作与在线发布