Str.startswith使用Regex

2022-05-12 00:00:00 pandas regex series

问题描述

我可以理解为什么str.startswith()不处理正则表达式:

   col1
0  country
1  Country

i.e : df.col1.str.startswith('(C|c)ountry')

它返回所有值FALSE:

   col1
0  False
1  False

解决方案

Series.str.startswith不接受正则表达式,因为它的行为类似于Vanilla Python中的str.startswith,后者不接受正则表达式。替代方法是使用正则表达式匹配(如in the docs所述):

df.col1.str.contains('^[Cc]ountry')

字符类[Cc]可能是匹配Cc(C|c)更好的方法,除非您当然需要捕获使用的字母。在这种情况下,您可以执行([Cc])

相关文章