gpt4 book ai didi

python - Pandas 使用正则表达式从文本中获取值

转载 作者:行者123 更新时间:2023-12-04 08:53:24 30 4
gpt4 key购买 nike

我有这样的文字:

text = 'Ronald Mayr: A\nBell Kassulke: B\nJacqueline Rupp: A \nAlexander Zeller: C\nValentina Denk: C \nSimon Loidl: A \nElias Jovanovic: B \nStefanie Weninger: B \nFabian Peer: C \nHakim Botros: B\nEmilie Lorentsen: B\n'
我需要获取所有具有 ":B"值的名称.. 例如 Bell Kassulke、Elias Jovanovic
我正在尝试这样的事情
stu = re.findall('\w+.*.: B',text)
但这个给了我这样的 list :
['Bell Kassulke: B',
'Simon Loidl: B',
'Elias Jovanovic: B']
虽然我只需要名字而不是整个列表。我到底能做什么?

最佳答案

您可以使用

^(.*?):\s*B\s*$
regex demo
详情
  • ^ - 字符串开头
  • (.*?) - 第 1 组(.findall 的实际值):除换行符以外的任何零个或多个字符,尽可能少
  • : - 冒号
  • \s*B\s* - 一个 B用零个或多个空格括起来
  • $ - 字符串结尾/

  • 在 Pandas 中,您可以使用
    df['Col name here'].str.findall(r'^(.*?):\s*B\s*$').str.join(',')
    或者,如果每个值需要一个匹配项:
    df['Results'] = df['Col name here'].str.extract(r'^(.*?):\s*B\s*$', expand=False)

    关于python - Pandas 使用正则表达式从文本中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63978810/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com