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 ...
最新文章
- java和python的比较-Python和Java就业前景对比
- Theano2.1.1-基础知识之准备工作
- 【译】 Google: Still in The Search 搜索巨人Google的伟大转变 (四)
- 备份mysql数据库的思路
- IDEA多Module的Language Level的问题
- Unity3D-射线效果
- 基于OpenCV及Python的数独问题识别与求解(一)图像预处理
- ubuntu Nvidia 显卡驱动失效问题
- iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了
- Cygwin安装笔记
- Linux 修改环境变量设置的三种方式
- 深入理解PHP原理之PHP与WEB服务器交互
- 测试投入度量元的选择
- Solr之Facet与FacetPivot的使用和区别
- 机器学习算法——决策树算法详细介绍,并使用sklearn实现案例预测,可视化决策树
- linux编辑状态a,linux 操作
- Bootstrap—实现圆角、圆形头像和响应式图片
- UA OPTI570 量子力学23 角动量基础
- 完美云主机购买小技巧分享
- java画二维坐标_在图形界面中绘制二维的坐标系统
热门文章
- Tomcat(三):tomcat处理连接的详细过程
- 枚举中关于toRaw()和fromRaw(3)编译出错
- gson解析mysql城市json数据_Gson解析复杂的json数据
- 1亿数据 redis 内存_redis 存1亿数据库
- java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...
- gitee markdown 笔记_picGo+github+坚果云打造自己的云笔记
- python debugger_彻底搞定反调试之无限debugger
- python爬虫requestsget_精讲Python中的requests方法
- python数字组合算法_面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?...
- python打包发布到手机_Python打包操作与在线发布