【问题标题】:Separate strings with regex and Pandas用正则表达式和熊猫分隔字符串
【发布时间】:2021-03-06 05:03:27
【问题描述】:

我有以下内容,我需要在 python 中将第三部分与熊猫分开,如下所示:

我的字符串:

FA0003 -BL- FA0005-BL
FA0004-BL-FA0008-BL

我的预期:

FA0005
FA0008

假设我在名为 A 的列中有一个这样的字符串,下面用于检索 FA0003 的字符串的正则表达式如下,但我现在不知道如何检索 FA0005?

FA0003 -BL- FA0005-BL
df[A].str.extract(r'(\w+\s*)', expand=False)
FA0003

【问题讨论】:

  • 是的,非常感谢。我真的很感激。

标签: python python-3.x regex pandas dataframe


【解决方案1】:

你可以使用

^(?:[^-]*-){2}\s*([^-]+)

regex demo

在 Pandas 中,将其与您当前的代码一起使用:

df[A].str.extract(r'^(?:[^-]*-){2}\s*([^-]+)', expand=False)

详情

  • ^ - 字符串开头
  • (?:[^-]*-){2} - 除了- 之外的任何字符出现两次,然后是-
  • \s* - 零个或多个空格(用于修剪输出)
  • ([^-]+) - 捕获组 1(返回值):除 - 之外的一个或多个字符。

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2015-07-19
    • 2018-07-31
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多