尝试在Python/pandas中使用regex获取子字符串

2024-10-04 01:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这看起来很愚蠢,但我到处找,尝试使用regex,但没有成功。我的脚本不适用于数据集中所有类型的字符串。在

我有一个列,其中包含的原始数据如下(三种情况):

20181223-FB-BOOST-AAAA-CC Auchy-Les-Mines - Père Noel
20161224-FB-BOOST-SSSS-CC LeMarine - XXX XXX
20161223-FB-BOOST-XXXX-CC Bonjour le monde - Blah blah

所以我想做的是把字符串放在中间的CC后面,在“-”之前。我写了一个剧本,对第二个案子有用,但对另外两个案子却没有效果:

^{pr2}$

下面是我使用的正则表达式,但从来没有适用于所有情况:regex=r"\s\b.*-."

提前谢谢!在


Tags: 数据字符串脚本类型原始数据fb情况regex
2条回答

您可以很简单地使用:

result = df.raw_data.str.extract(r'-CC (.*) -')

你是我的用处

df['Col'].str.extract(r'-CC\s+(.*?)\s+-')

the regex demo。在

图案细节

  • -CC-一个文本子字符串
  • \s+-1+个空格
  • (.*?)-group1(这个值将由.str.extract返回):尽可能少地使用除newline之外的任何0+字符
  • \s+-1+空格(+在这里很重要)
  • --连字符

事实上,(.*?)的两端都有\s+模式,这将确保不管有多少个空白,结果都已经从空白中去除。在

相关问题 更多 >