欢迎访问宙启技术站
智能推送

findall()查找并返回字符串中匹配正则表达式的所有子字符串?

发布时间:2023-11-26 00:49:44

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()函数。这些函数可以根据不同的需求,选择最合适的函数来进行匹配和处理。