pandas.Series.str.findall#

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

查找序列/索引中模式或正则表达式的所有匹配项。

相当于应用 re.findall() 到系列/索引中的所有元素。

参数
pat应力

模式或正则表达式。

flags整型,默认为0

旗帜来自 re 模块,例如 re.IGNORECASE (默认值为0,表示没有标志)。

退货
字符串列表的序列/索引

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

参见

count

对序列/索引的每个字符串中出现的模式或正则表达式进行计数。

extractall

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

re.findall

等价物 re 函数以字符串列表的形式传递给字符串中模式或正则表达式的所有非重叠匹配项。

示例

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

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

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

另一方面,搜索模式‘Money’不会返回任何匹配项:

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

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

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