pandas.Series.str.findall#

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

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

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

Parameters:
patstr

模式或正则表达式。

flagsint,默认为 0

来自 re 模块的标志,例如 `re.IGNORECASE`(默认为 0,表示无标志)。

Returns:
字符串列表的 Series/Index

此 Series/Index 中每个字符串对模式或正则表达式的所有非重叠匹配项。

参见

count

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

extractall

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

re.findall

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

Examples

>>> 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

当模式匹配Series中的多个字符串时,将返回所有匹配项:

>>> 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