Python findall()函数:查找符合正则表达式的字符串

您所在的位置:网站首页 查找全部数字的函数 Python findall()函数:查找符合正则表达式的字符串

Python findall()函数:查找符合正则表达式的字符串

2023-07-20 05:36| 来源: 网络整理| 查看: 265

原文链接:https://www.92python.com/view/439.html

在 Python 程序中,函数 findall() 的功能是在字符串中查找所有符合正则表达式的字符串,并返回这些字符串的列表。如果在正则表达式中使用了组,则返回一个元组。函数 re.match() 和函数 re.search() 的作用基本一样。不同的是,函数 re.match() 只从字符串中第一个字符开始匹配,而函数 re.search() 则搜索整个字符串。

使用函数 findall() 的语法格式如下所示:

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

下面的实例文件 fi.py 演示了使用函数 findall() 进行匹配的过程。

import re #导入模块re #定义一个要操作的字符串变量s s = "adfad asdfasdf asdfas asdfawef asd adsfas " reObj1 = re.compile('((\w+)\s+\w+)') #将正则表达式的字符串形式编译为 Pattern 实例 print(reObj1.findall(s)) #第1次调用函数 findall() reObj2 = re.compile('(\w+)\s+\w+') #将正则表达式的字符串形式编译为Pattern实例 print(reObj2.findall(s)) #第2次调用函数 findall() reObj3 = re.compile('\w+\s+\w+') #将正则表达式的字符串形式编译为Pattern实例 print(reObj3.findall(s)) #第3次调用函数 findall()

因为函数 findall() 返回的总是正则表达式在字符串中所有匹配结果的列表,所以此处主要讨论列表中“结果”的展现方式,即 findall 返回列表中每个元素包含的信息。

上述代码调用了三次函数 findall(),具体说明如下所示: 第 1 次调用:当给出的正则表达式中有多对小括号时,列表的元素为多个字符串组成的元组,元组中的字符串个数与小括号对数相同,字符串的内容与每个小括号内的正则表达式相对应,并且按小括号中出现的顺序排放。 第 2 次调用:当给出的正则表达式中有一对小括号时,列表的元素为字符串,此字符串的内容与小括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。 第 3 次调用:当给出的正则表达式中不带小括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。

执行后会输出:

[('adfad asdfasdf', 'adfad'), ('asdfas asdfawef', 'asdfas'), ('asd adsfas', 'asd')] ['adfad', 'asdfas', 'asd'] ['adfad asdfasdf', 'asdfas asdfawef', 'asd adsfas']

下面的实例文件 wangzhi.py 演示了使用函数 findall() 提取网址和锚文本的过程。

import re relink = '(.*)' info = 'baidu' cinfo = re.findall(relink,info) print(cinfo)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3