为什么这个 pandas str.extract 模式有效?

Why does this pandas str.extract pattern work?

我有一个包含列 "title" 的数据框 "movies",其中包含以下格式的电影标题及其发行年份:

海盗 (2014)

我正在测试将标题部分(在上面的示例中为 "The Pirates")提取到新列中的不同方法。

我使用 pandas Series.str.extract() 并找到了一个有效的正则表达式模式,但我不确定它为什么有效。


movies['title_only'] = movies['title'].str.extract('(.*)[\s]', expand=True)

上面的代码正确地将 "The Pirates" 提取到一个新列中,但为什么它不只提取 "The"(第一个空格之前的所有内容)?

  • 是一个贪心量词,这意味着它会尽可能匹配到字符串中。要只匹配第一个单词,您可以将其切换为惰性量词 *?。另外,请注意您不需要在 \s 周围加上方括号。 [\s] == \s

根据 CAustin