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