findall()查找并返回字符串中匹配正则表达式的所有子字符串?
findall()是Python中re模块提供的一个函数,用于在字符串中查找并返回与正则表达式匹配的所有子字符串。
re.findall(pattern, string, flags=0)函数接受三个参数:
- pattern:要匹配的正则表达式。
- string:要在其中查找的字符串。
- flags:可选参数,用于控制正则表达式的匹配方式。
findall()函数会返回一个包含所有匹配结果的列表,每个匹配结果是一个字符串。如果没有匹配到任何结果,则返回一个空列表。
以下是一些关于findall()函数的详细说明:
1. 查找单个字符:
- .:匹配除了换行符以外的任意单个字符。
- \d:匹配任意一个数字。
2. 查找字符集合:
- [abc]:匹配"a"、"b"或"c"中的任意一个字符。
- [a-z]:匹配任意一个小写字母。
- [0-9]:匹配任意一个数字。
3. 查找特殊字符:
- *:匹配前面的字符零次或多次。
- +:匹配前面的字符一次或多次。
- ?:匹配前面的字符零次或一次。
- {m}:匹配前面的字符恰好m次。
- {m, n}:匹配前面的字符m到n次。
4. 查找特殊符号:
- \:用于转义特殊字符。
- ^:匹配字符串的开头。
- $:匹配字符串的结尾。
- ():用于分组。
5. 查找特殊模式:
- \b:匹配单词的边界。
- \B:匹配非单词的边界。
- \w:匹配任意一个字母、数字或下划线。
- \W:匹配除字母、数字和下划线以外的任意字符。
- \s:匹配任意一个空白字符。
- \S:匹配除空白字符以外的任意字符。
下面是一个使用findall()函数的例子,匹配字符串中的所有数字,并返回一个包含匹配结果的列表:
import re text = "There are 123 apples and 456 pears." numbers = re.findall(r'\d+', text) print(numbers) # ['123', '456']
除了findall()函数之外,re模块还提供了其他一些函数用于在字符串中查找和替换匹配的内容,比如search()和match()函数。这些函数可以根据不同的需求,选择最合适的函数来进行匹配和处理。
