polars.Series.str.replace#
- Series.str.replace( ) Series[source]#
用新的字符串值替换第一个匹配的正则表达式/字面量子字符串。
- Parameters:
- pattern
一个有效的正则表达式模式,与regex crate兼容。
- value
将替换匹配子字符串的字符串。
- literal
将
pattern视为字面字符串。- n
要替换的匹配项数量。
另请参阅
注释
要使用标志修改正则表达式的行为(例如大小写敏感性),请使用内联
(?iLmsuxU)语法。(有关内联表达式修饰符的使用,请参阅regex crate的分组和标志部分以获取更多信息)。美元符号(
$)是一个与捕获组相关的特殊字符;如果你想用包含字面量$的字符替换某些目标模式,你应该通过将其加倍为$$来转义它,或者如果你不需要完整的正则表达式模式匹配,可以设置literal=True。否则,你将会引用一个(可能不存在的)捕获组。如果不进行转义,替换值中的
$0(如下所示)表示一个捕获组:>>> s = pl.Series("cents", ["000.25", "00.50", "0.75"]) >>> s.str.replace(r"^(0+)\.", "$0.") shape: (3,) Series: 'cents' [str] [ "000..25" "00..50" "0..75" ]
要使
$表示字面值,应将其加倍为$$(或者,为了更简单的查找/替换操作,如果您不需要完整的正则表达式匹配,可以设置literal=True):>>> s.str.replace(r"^(0+)\.", "$$0.") shape: (3,) Series: 'cents' [str] [ "$0.25" "$0.50" "$0.75" ]
示例
>>> s = pl.Series(["123abc", "abc456"]) >>> s.str.replace(r"abc\b", "ABC") shape: (2,) Series: '' [str] [ "123ABC" "abc456" ]
支持捕获组。在
value字符串中使用$1或${1}来引用pattern中的第一个捕获组,使用$2或${2}来引用第二个捕获组,依此类推。你也可以使用命名捕获组。>>> s = pl.Series(["hat", "hut"]) >>> s.str.replace("h(.)t", "b${1}d") shape: (2,) Series: '' [str] [ "bad" "bud" ] >>> s.str.replace("h(?<vowel>.)t", "b${vowel}d") shape: (2,) Series: '' [str] [ "bad" "bud" ]
使用
(?i)标志进行不区分大小写的字符串替换。>>> s = pl.Series("weather", ["Foggy", "Rainy", "Sunny"]) >>> s.str.replace(r"(?i)foggy|rainy", "Sunny") shape: (3,) Series: 'weather' [str] [ "Sunny" "Sunny" "Sunny" ]