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. postgresql 新建decimal字段_postgresql路径规划插件pgrouting使用
  2. MySqli 连接失败 MySQL connection not working: 2002 No such file or directory
  3. python爬虫提取教学_python爬虫的基本抓取
  4. 安卓高手之路 图形系统(2)----------------基于Binder的架构思路)
  5. 2021-07-09
  6. python培训班骗局-深圳盐田区python专业培训机构,真实经历分享
  7. java web scala_Springboot与scala编写第一个web程序
  8. 软件项目管理第4版课后习题[附解析]第七章
  9. POI 实现Word替换书签
  10. 示波器上1G/S 100MHZ的含义
  11. 如何在高共模电压下测量小差分电压
  12. iperf3网络测速
  13. simulink 菜单栏 不见了
  14. bilibili自动上传视频脚本(纯ruby)
  15. 编写函数:笛卡尔坐标系(Append Code)
  16. el-form 清除表单验证结果
  17. SOLIDWORKS Simulation攻略丨赫兹接触应力分析
  18. 蓝桥杯 模板Template Part9:PCF8591 ADC/DAC
  19. 使用飞信SDK开发短信收发程序
  20. android电视投影ipad,【沙发管家】苹果手机, Ipad连接安卓智能电视投屏教程!

热门文章

  1. python 余弦_Python快速余弦距离
  2. 学Linux的你还在为正则表达式而挠头?
  3. api1.7oracle,API 支持
  4. php多关键词精确查找,搜索引擎,全文搜索_请问有没有搜索引擎能做到Like级别的任意关键词精确查询?,搜索引擎,全文搜索,lucene,elasticsearch,百度 - phpStudy...
  5. java 连续打印_Java实现连续打印ABC
  6. 一些SQL性能优化的实用经验
  7. Linux-企业邮件部署
  8. php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现
  9. word 数组 转 指针_Word之VBA丨文档中的图片怎样批量加边框?
  10. 关闭eslint检查2020_2020 vscode配置eslint保存后自动fix