Spec-Zone.ru › Polars

polars.Series.str.replace

Series.str.replace(
    pattern: str,
    value: str,
    *,
    literal: bool = False,
    n: int = 1,
) → Series

Заменяет первое совпадение регулярного выражения/литеральную подстроку новым строковым значением.

Параметры:
pattern

Допустимый шаблон регулярного выражения, совместимый с крейтом regex.

value

Строка, которая заменит совпавшую подстроку.

literal

Интерпретировать pattern как литеральную строку, а не регулярное выражение.

n

Количество совпадений для замены.

См. также

replace_all

Примечания

  • Чтобы изменить поведение регулярного выражения (например, чувствительность к регистру) с помощью флагов, используйте синтаксис (?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"
]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API