pandas.Series.str.findall#

Series.str.findall(pat, flags=0)[源代码]#

在 Series/Index 中查找所有模式或正则表达式的出现。

等同于对 Series/Index 中的所有元素应用 re.findall()

参数:
patstr

模式或正则表达式。

标志int, 默认 0

来自 re 模块的标志,例如 `re.IGNORECASE`(默认是 0,这意味着没有标志)。

返回:
字符串列表的系列/索引

在此系列/索引的每个字符串中,模式或正则表达式的所有不重叠匹配项。

参见

count

计算 Series/Index 中每个字符串中模式或正则表达式的出现次数。

extractall

对于Series中的每个字符串,从正则表达式的所有匹配中提取组,并返回一个DataFrame,每个匹配有一行,每个组有一列。

re.findall

等效的 re 函数用于在字符串中查找所有不重叠的模式或正则表达式匹配项,作为字符串列表返回。

示例

>>> s = pd.Series(["Lion", "Monkey", "Rabbit"])

搜索模式 ‘Monkey’ 返回一个匹配:

>>> s.str.findall("Monkey")
0          []
1    [Monkey]
2          []
dtype: object

另一方面,搜索模式 ‘MONKEY’ 没有返回任何匹配:

>>> s.str.findall("MONKEY")
0    []
1    []
2    []
dtype: object

可以在模式或正则表达式中添加标志。例如,要查找忽略大小写的模式 ‘MONKEY’:

>>> import re
>>> s.str.findall("MONKEY", flags=re.IGNORECASE)
0          []
1    [Monkey]
2          []
dtype: object

当模式匹配到序列中的多个字符串时,所有匹配项都会被返回:

>>> s.str.findall("on")
0    [on]
1    [on]
2      []
dtype: object

正则表达式也是支持的。例如,搜索所有以单词 ‘on’ 结尾的字符串如下所示:

>>> s.str.findall("on$")
0    [on]
1      []
2      []
dtype: object

如果在同一个字符串中找到的模式不止一次,则返回多个字符串的列表:

>>> s.str.findall("b")
0        []
1        []
2    [b, b]
dtype: object