polars.Series.str.replace
-
Заменяет первое совпадение регулярного выражения/литеральную подстроку новым строковым значением.
- Параметры:
-
- pattern
-
Допустимый шаблон регулярного выражения, совместимый с крейтом regex.
- value
-
Строка, которая заменит совпавшую подстроку.
- literal
-
Интерпретировать
patternкак литеральную строку, а не регулярное выражение. - n
-
Количество совпадений для замены.
См. также
Примечания
- Чтобы изменить поведение регулярного выражения (например, чувствительность к регистру) с помощью флагов, используйте синтаксис
(?iLmsuxU). (Дополнительную информацию об использовании встроенных модификаторов выражений см. в разделе о группировке и флагах крейта regex.) -
Знак доллара (
$) — специальный символ, связанный с группами захвата; если вы хотите заменить целевой шаблон символами, включающими литеральный$, его нужно экранировать, продублировав:$$, или задать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" ]Поддерживаются группы захвата. Используйте
$1или${1}в строкеvalue, чтобы сослаться на первую группу захвата в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" ]
Series.str.replace(
pattern: str,
value: str,
*,
literal: bool = False,
n: int = 1,
) → Series
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/series/api/polars.Series.str.replace.html