JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发电商视觉设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

软件测试中,正则表达式match search 和findall之间的区别是什么

来源:黑马程序员

浏览32817人

2019.12.05

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)

函数参数说明:

软件测试中,正则表达式match search 和findall之间的区别是什么


匹配成功re.match方法返回一个匹配的对象,否则返回None。

re模块的使用过程:

#coding=utf-8
# 导入re模块
import re
# 使用match方法进行匹配操作
result = re.match(正则表达式,要匹配的字符串)

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

软件测试中,正则表达式match search 和findall之间的区别是什么


#coding=utf-8
# 导入re模块
import re
# 使用match方法进行匹配操作
result = re.match(正则表达式,要匹配的字符串)
# 如果上一步匹配到数据的话,可以使用group方法来提取数据
result.group()

re 模块案例:

匹配以itcast开头的语句

 #coding=utf-8

import re

result = re.match("itcast","itcast.cn")

result.group()

运行结果为:
itcast

re.search

re.match 只能在起始位置匹配,而re.search可以扫描整个字符串并返回第一个成功的匹配

需求:匹配出文章阅读的次数

#coding=utf-8
import re

ret = re.search(r"d+", "阅读次数为 9999")
ret.group()

运行结果:

'9999'

re.findall

re.match和re.search两个都只能找到一个匹配结果,而findall可以找到所有满足匹配条件的结果,并以列表的形式返回

需求:统计出python、c、c++相应文章阅读的次数

#coding=utf-8import reret = re.findall(r"d+", "python = 9999, c = 7890, c++ = 12345")print(ret)

运行结果:

['9999', '7890', '12345']

三者之间的区别:

22

软件测试中,正则表达式match search 和findall之间的区别是什么