re.match函数 re.search方法 区别
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方法 区别相关推荐
- 28Python正则表达式、正则表达式对象、正则表达式修饰符、表达式模板、表达式实例、match函数、search方法、检索和替换、repl、compile、findall等
28Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. ...
- python re match groups_python re.match与re.search的区别
re.match与re.search的区别 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配. i ...
- python---正则表达式(re.match与re.search的区别)
文章目录 前言 一.re.match正则匹配 二.re.search正则匹配 三.re.match与re.search区别 前言 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则 ...
- JavaScript中的match方法和search方法
search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的 ...
- index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数
VLOOKUP 职场里面用的太频繁的,是必须掌握使用的函数公式,在这个函数的使用过程中,有时候用起来也不是很方便,比如下面两个场景 ❶逆向查找匹配 左边是员工编号,姓名,工资表格数据,现在需要根据姓名 ...
- python search返回值_python正则表达式--match search方法
1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern,str ...
- Excel中offset函数的使用方法
Excel中offset函数的使用方法听语音 你还在为Excel中offset函数的使用方法而苦恼吗,今天小编教你Excel中offset函数的使用方法,让你告别Excel中offset函数的使用方法 ...
- python中match函数的用法_pythonre.match函数是什么,了解pythonmatch函数的使用
与之前的文章<Python正则表达式详解,告诉你Python正则表达式是什么?>联动,本文讲述了python re.match函数的使用方法,并附带了表格与实例来解析Python matc ...
- re.match函数讲解
之前一直对re.match函数的匹配方法感到困惑,今天用具体的例子来讲解一下re.match函数匹配到的不同内容: 第一组代码 import reline = "Cats are smart ...
最新文章
- postgresql 新建decimal字段_postgresql路径规划插件pgrouting使用
- MySqli 连接失败 MySQL connection not working: 2002 No such file or directory
- python爬虫提取教学_python爬虫的基本抓取
- 安卓高手之路 图形系统(2)----------------基于Binder的架构思路)
- 2021-07-09
- python培训班骗局-深圳盐田区python专业培训机构,真实经历分享
- java web scala_Springboot与scala编写第一个web程序
- 软件项目管理第4版课后习题[附解析]第七章
- POI 实现Word替换书签
- 示波器上1G/S 100MHZ的含义
- 如何在高共模电压下测量小差分电压
- iperf3网络测速
- simulink 菜单栏 不见了
- bilibili自动上传视频脚本(纯ruby)
- 编写函数:笛卡尔坐标系(Append Code)
- el-form 清除表单验证结果
- SOLIDWORKS Simulation攻略丨赫兹接触应力分析
- 蓝桥杯 模板Template Part9:PCF8591 ADC/DAC
- 使用飞信SDK开发短信收发程序
- android电视投影ipad,【沙发管家】苹果手机, Ipad连接安卓智能电视投屏教程!
热门文章
- python 余弦_Python快速余弦距离
- 学Linux的你还在为正则表达式而挠头?
- api1.7oracle,API 支持
- php多关键词精确查找,搜索引擎,全文搜索_请问有没有搜索引擎能做到Like级别的任意关键词精确查询?,搜索引擎,全文搜索,lucene,elasticsearch,百度 - phpStudy...
- java 连续打印_Java实现连续打印ABC
- 一些SQL性能优化的实用经验
- Linux-企业邮件部署
- php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现
- word 数组 转 指针_Word之VBA丨文档中的图片怎样批量加边框?
- 关闭eslint检查2020_2020 vscode配置eslint保存后自动fix