match和findall
时间: 2023-06-23 17:55:30 浏览: 79
`match()` 和 `findall()` 是 Python `re`(正则表达式)模块中常用的两个函数,它们都可以用于从字符串中查找匹配的子串。
- `match()` 函数:从字符串的开头开始匹配,只匹配一次,如果匹配成功则返回匹配对象,否则返回 `None`。
- `findall()` 函数:在整个字符串中查找匹配的子串,可以匹配多次,返回一个包含所有匹配子串的列表,如果没有匹配,则返回空列表。
下面是一个示例,演示如何使用 `match()` 和 `findall()` 函数:
```python
import re
s = "hello, world! hello, python!"
pattern = r"hello"
# 使用 match() 函数进行匹配
match_obj = re.match(pattern, s)
print(match_obj) # <re.Match object; span=(0, 5), match='hello'>
# 使用 findall() 函数进行匹配
match_list = re.findall(pattern, s)
print(match_list) # ['hello', 'hello']
```
在这个例子中,我们定义了一个字符串 `s` 和一个正则表达式 `pattern`,然后使用 `match()` 函数和 `findall()` 函数分别进行匹配。输出结果表明,`match()` 函数只匹配了一次,返回了一个匹配对象;而 `findall()` 函数匹配了两次,返回了一个包含所有匹配子串的列表。
需要注意的是,`match()` 函数只能匹配字符串开头的子串,如果需要匹配整个字符串或者字符串的任意位置,可以使用 `findall()` 函数。在实际使用时,需要根据具体的需求来选择合适的函数。
阅读全文