polars.Series.str.extract#

Series.str.extract(pattern: IntoExprColumn, group_index: int = 1) Series[source]#

从提供的模式中提取目标捕获组。

Parameters:
pattern

一个有效的正则表达式模式,包含至少一个捕获组,与regex crate兼容。

group_index

目标捕获组的索引。 组0表示整个模式,第一个组从索引1开始。 默认为第一个捕获组。

Returns:
Series

数据类型为 String 的系列。如果原始值为空或正则表达式未捕获任何内容,则包含空值。

注释

要使用标志修改正则表达式的行为(例如多行匹配),请使用内联的 (?iLmsuxU) 语法。例如:

>>> s = pl.Series(
...     name="lines",
...     values=[
...         "I Like\nThose\nOdds",
...         "This is\nThe Way",
...     ],
... )
>>> s.str.extract(r"(?m)^(T\w+)", 1).alias("matches")
shape: (2,)
Series: 'matches' [str]
[
    "Those"
    "This"
]

有关内联表达式修饰符使用的更多信息,请参阅正则表达式库的分组和标志部分。

示例

>>> s = pl.Series(
...     name="url",
...     values=[
...         "http://vote.com/ballon_dor?ref=polars&candidate=messi",
...         "http://vote.com/ballon_dor?candidate=ronaldo&ref=polars",
...         "http://vote.com/ballon_dor?error=404&ref=unknown",
...     ],
... )
>>> s.str.extract(r"candidate=(\w+)", 1).alias("candidate")
shape: (3,)
Series: 'candidate' [str]
[
    "messi"
    "ronaldo"
    null
]