python正则表达式函数match()和search()的区别详解
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()的区别详解相关推荐
- python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...
match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...
- python cut函数_基于python cut和qcut的用法及区别详解
我就废话不多说了,直接上代码吧: from pandas import Series,DataFrame import pandas as pd import numpy as np from num ...
- python lambda函数加法_python lambda的使用详解
1. lambda语法 lambda argument_list: expression lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数 ...
- python getsize函数_Python getsizeof()和getsize()区分详解
sys.getsizeof() 获取程序中声明的一个整数,存储在变量中的大小,以字节(byte)为单位 import sys print(sys.getsizeof('')) print(sys.ge ...
- python正则表达式之match,search,findall区别
from __future__ import print_function from __future__ import division from __future__ import absolut ...
- python中的match和search的区别
对比 match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 这个方法将从string的pos下标处起尝试匹配patt ...
- Python生成器next方法和send方法区别详解
yield的语法规则是: 在yield这里暂停函数执行,并返回yield后面表达式的值(默认为None),直到被next()再次调用时,从上次暂停的yield代码处继续往下执行.当没有可继续next( ...
- python中数组的del,remove,pop区别详解
以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: >>> a=[1,2,3] >>> a.rem ...
- JavaScript正则表达式/g和非/g的区别详解
g是JavaScript正则表达式修饰符,在菜鸟教程中的解释为:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止). 下面开始试验: var str = "up up";var ...
最新文章
- 287. Find the Duplicate Number
- 如何判断两个IP地址是不是处于同一网段?
- Centos7 安装netcat(NC瑞士军刀)
- python并发编程之semaphore(信号量)_Python 并发编程系列之多线程
- 线程八锁,同步锁的应用
- 传输层协议TCP和UDP
- linux命令 bind,Linux bind命令
- 使用IDEA创建一个Maven Web工程:无法创建Java Class文件
- linux mysql 查看字符集_Linux中查看和设置MySQL数据库字符集 一
- OpenGL glut导入OBJ模型文件
- 基于嵌入式Linux的语音识别系统硬软件设计
- 无法更改硬件兼容性时解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的方法
- 计算机简单构图,涨姿势了!人像二次构图技巧原来这么简单
- 富士服务器A系列说明书,富士伺服驱动器FALDIC-用户手册.pdf
- 无法搜索到对方电脑共享的文件
- 什么是UserAgent以及使用浏览器查看UserAgent的方法
- 并发——锁升级(偏向锁,轻量级锁,重量级锁,及常见锁)
- 人工神经网络的典型模型,人工神经网络模型定义
- idea入门级配置(初)
- matlab shogun,在Windows下为Matlab编译Shogun工具箱
热门文章
- mysql 用户管理和权限设置
- 翻译 github上How to be a good programmer
- 水题 逆序对 NOIP 2013 火柴排队
- 领域驱动第四章-读书笔记
- 随机发牌_用Python制作4人扑克牌发牌游戏
- 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
- Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
- C语言学习之函数调用递归问题,有5个学生坐在一起,问第5个学生多少岁?
- c语言5的阶乘流程图_2020年,5种将死的编程语言!