Vectorized String Methods中的Series.str.replace()

时间:2014-07-23 22:53:43

标签: python regex pandas str-replace

在矢量化字符串方法文档(http://pandas.pydata.org/pandas-docs/stable/basics.html#vectorized-string-methods)...

In [204]: s3 = Series(['A', 'B', 'C', 'Aaba', 'Baca',
   .....:             '', np.nan, 'CABA', 'dog', 'cat'])
   .....: 

In [205]: s3
Out[205]: 
0       A
1       B
2       C
3    Aaba
4    Baca
5        
6     NaN
7    CABA
8     dog
9     cat
dtype: object

In [206]: s3.str.replace('^.a|dog', 'XX-XX ', case=False)
Out[206]: 
0           A
1           B
2           C
3    XX-XX ba
4    XX-XX ca
5            
6         NaN
7    XX-XX BA
8      XX-XX 
9     XX-XX t
dtype: object

为什么在上面的.replace()示例中,'ba'和'BA'未被正则表达式选择作为replace()方法中的第一个参数并被'XX-XX'替换?在我看来,任何字符都跟着说。 a或者狗,用任何字符开头替换“XX-XX”,无论情况如何。

1 个答案:

答案 0 :(得分:2)

这是因为在字符串的开头找不到'ba'和'BA',其中替代字符^中的^.a锚点在字符串的开头处断言位置。

  

指定人:
Reference - What does this regex mean?