谈谈 re 模块中 findall 函数 的区别,举例说明
时间: 2024-04-17 22:26:04 浏览: 100
`re` 模块中的 `findall()` 函数也用于在字符串中搜索匹配的模式,但它与 `search()` 和 `match()` 函数有一些区别。
`findall()` 函数的主要区别在于它会返回所有与模式匹配的子字符串,而不仅仅是第一个匹配项。它将返回一个包含所有匹配项的列表。
以下是一个示例,说明了 `findall()` 函数的用法和区别:
```python
import re
text = "The quick brown fox jumps over the lazy dog."
pattern = r"\b\w{4}\b" # 匹配具有4个字母的单词
matches = re.findall(pattern, text)
if matches:
print("Found matches:")
for match in matches:
print(match)
else:
print("No matches found.")
```
输出:
```
Found matches:
quick
brown
jumps
over
lazy
```
在上述代码中,我们使用正则表达式模式 `\b\w{4}\b` 来匹配具有4个字母的单词。`findall()` 函数在整个字符串中搜索,找到所有满足模式的子字符串,并将它们存储在 `matches` 列表中。然后,我们遍历 `matches` 列表并打印每个匹配项。
需要注意的是,`findall()` 函数返回的结果是一个列表,而不是单个匹配对象。如果未找到匹配项,它将返回一个空列表。因此,可以方便地使用 `findall()` 函数一次性获取所有匹配项,而不需要进行迭代和条件检查。
阅读全文