Python内置的 re 模块用于字符模式匹配,是文本处理中非常常用的模块,re.findall() 函数是其中一个常用函数,本文将对它的作用、使用方法、语法规则进行详细讲解,并提供实例说明。
1. re.findall() 函数的作用
re.findall()函数在字符串中查找正则表达式所匹配的所有结果,并以列表(list)形式返回。findall()搜索整个字符串,返回匹配正则表达式的所有结果。
2. re.findall() 函数的使用方法
re.findall()函数的使用方法如下:
re.findall(pattern, string, flags=0)
其中,参数说明如下:
- pattern:定义一个正则表达式,用于匹配字符串。
- string:需要匹配的字符串。
- flags:可选参数,用于设置正则表达式的匹配模式。
返回结果为一个列表,列表中包含所有匹配到的结果。
3. 实例说明
接下来,我们将通过两个实例来介绍 re.findall() 函数的具体使用。
实例一:匹配所有数字
import re
text = "hello 123 world 456"
result = re.findall("\d+", text)
print(result)
运行结果为:[‘123’, ‘456’]
解释:\d+
表示匹配一个或多个数字,加号 +
表示匹配一个或多个字符。
实例二:匹配网站中所有超链接
import re
text = '<a href="http://www.baidu.com">百度网站</a>,<a href="http://www.taobao.com">淘宝网站</a>。'
result = re.findall('<a href="(.*?)">(.*?)</a>', text)
print(result)
运行结果为:[(‘http://www.baidu.com’, ‘百度网站’), (‘http://www.taobao.com’, ‘淘宝网站’)]
解释:<a href="(.*?)">(.*?)</a>
表示匹配一个超链接,其中 (.*?)
表示匹配任意字符,非贪婪模式。使用两个括号捕获两个分组,分别表示链接和名称,且捕获时会去掉标签。最后返回匹配到的超链接和名称。