match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢?

match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。

例如:

#! /usr/bin/env python
# -*- coding=utf-8 -*-import retext= 'pythontab'
m= re.match(r"\w+", text)
if m: print m.group(0)
else:print 'not match'

结果是:pythontab

而:

#! /usr/bin/env python
# -*- coding=utf-8 -*-
#import retext= '@pythontab'
m= re.match(r"\w+", text)
if m: print m.group(0)
else:print 'not match'

结果是:not match

search()会扫描整个字符串并返回第一个成功的匹配

例如:

#! /usr/bin/env python
# -*- coding=utf-8 -*-
#import retext= 'pythontab'
m= re.search(r"\w+", text)
if m: print m.group(0)
else:print 'not match'

结果是:pythontab

那这样呢:

#! /usr/bin/env python
# -*- coding=utf-8 -*-
#import retext= '@pythontab'
m= re.search(r"\w+", text)
if m: print m.group(0)
else:print 'not match'

结果是:pythontab

python正则表达式函数match()和search()的区别详解相关推荐

  1. python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...

  2. python cut函数_基于python cut和qcut的用法及区别详解

    我就废话不多说了,直接上代码吧: from pandas import Series,DataFrame import pandas as pd import numpy as np from num ...

  3. python lambda函数加法_python lambda的使用详解

    1. lambda语法 lambda argument_list: expression lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数 ...

  4. python getsize函数_Python getsizeof()和getsize()区分详解

    sys.getsizeof() 获取程序中声明的一个整数,存储在变量中的大小,以字节(byte)为单位 import sys print(sys.getsizeof('')) print(sys.ge ...

  5. python正则表达式之match,search,findall区别

    from __future__ import print_function from __future__ import division from __future__ import absolut ...

  6. python中的match和search的区别

    对比 match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 这个方法将从string的pos下标处起尝试匹配patt ...

  7. Python生成器next方法和send方法区别详解

    yield的语法规则是: 在yield这里暂停函数执行,并返回yield后面表达式的值(默认为None),直到被next()再次调用时,从上次暂停的yield代码处继续往下执行.当没有可继续next( ...

  8. python中数组的del,remove,pop区别详解

    以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: >>> a=[1,2,3] >>> a.rem ...

  9. JavaScript正则表达式/g和非/g的区别详解

    g是JavaScript正则表达式修饰符,在菜鸟教程中的解释为:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止). 下面开始试验: var str = "up up";var ...

最新文章

  1. 287. Find the Duplicate Number
  2. 如何判断两个IP地址是不是处于同一网段?
  3. Centos7 安装netcat(NC瑞士军刀)
  4. python并发编程之semaphore(信号量)_Python 并发编程系列之多线程
  5. 线程八锁,同步锁的应用
  6. 传输层协议TCP和UDP
  7. linux命令 bind,Linux bind命令
  8. 使用IDEA创建一个Maven Web工程:无法创建Java Class文件
  9. linux mysql 查看字符集_Linux中查看和设置MySQL数据库字符集 一
  10. OpenGL glut导入OBJ模型文件
  11. 基于嵌入式Linux的语音识别系统硬软件设计
  12. 无法更改硬件兼容性时解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的方法
  13. 计算机简单构图,涨姿势了!人像二次构图技巧原来这么简单
  14. 富士服务器A系列说明书,富士伺服驱动器FALDIC-用户手册.pdf
  15. 无法搜索到对方电脑共享的文件
  16. 什么是UserAgent以及使用浏览器查看UserAgent的方法
  17. 并发——锁升级(偏向锁,轻量级锁,重量级锁,及常见锁)
  18. 人工神经网络的典型模型,人工神经网络模型定义
  19. idea入门级配置(初)
  20. matlab shogun,在Windows下为Matlab编译Shogun工具箱

热门文章

  1. mysql 用户管理和权限设置
  2. 翻译 github上How to be a good programmer
  3. 水题 逆序对 NOIP 2013 火柴排队
  4. 领域驱动第四章-读书笔记
  5. 随机发牌_用Python制作4人扑克牌发牌游戏
  6. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
  8. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
  9. C语言学习之函数调用递归问题,有5个学生坐在一起,问第5个学生多少岁?
  10. c语言5的阶乘流程图_2020年,5种将死的编程语言!