gpt4 book ai didi

apache-spark - 如果两个字符串之间存在子字符串,则提取两个字符串之间的文本

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

我在名为“message”的列中有一个原始文本,如下所示:
示例数据框

Date               message
2020-11-01 ['some not required text1', 'Startstring ,
'some not required text2', MandatorySubstring , 'some not
required text3', 'ID :AB_CD, 'Stopstring' 'some not
required text4', 'Startstring ID :cd_ab', 'some not
required text5', 'ID :ghed','some not required text6', ID :zyx', 'Stopstring 'some
not required text7']
2020-11-02 ['some not required text8', Startstring 'ID :ABCD',
'some not required text9', 'ID :ED_GH', 'some not
required text10', ID :X_YZ, Stopstring 'some not
required text11', 'Startstring
'some not required text12',MandatorySubstring
'some not required text13', ID :z_yx', 'some not required text14''Stopstring
'some not required text15']
我希望在 ID 之后提取字符串:如果 MandatorySubstring 存在于 Startstring 和 Stopstring 之间,则在 Startstring 和 Stopstring 之间,如果 MandatorySubstring 不存在于 Startstring 和 Stopstring 之间,则丢弃 ID。一个日期中可能有多个这样的实例。
预期输出:
Date               message
2020-11-01 AB_CD
2020-11-02 z_yx

我尝试了以下模式:
pattern = StartString\s*((?:(?!StartString).)*?MandatoryString 1.*?)\s*Stopstring
它给了我 startstring 和 stoptstring 之间的所有文本。我不知道如何在 ID 之后提取文本:现在从这个文本中提取。
任何人都可以为我提供这种情况下的正则表达式模式吗?非常感谢这方面的帮助。谢谢

最佳答案

鉴于当前的输入,我建议

Startstring(?:(?!Startstring).)*?MandatorySubstring(?:(?!Startstring).)*?,['\s]*ID\s*:\s*([^',]*).*?Stopstring
regex demo .细节:
  • Startstring - 左侧分隔符
  • (?:(?!Startstring).)*? - 任何零个或多个不以 Startstring 开头的字符字符序列
  • MandatorySubstring - 必须出现在左右分隔符之间的字符串
  • (?:(?!Startstring).)*? - 任何零个或多个不以 Startstring 开头的字符字符序列
  • , - 逗号
  • ['\s]* - 零个或多个 '或空格
  • ID - 一个字符串
  • \s*:\s* - 用零个或多个空格括起来的冒号
  • ([^',]*) - 第 1 组:除 ' 之外的任何零个或多个字符和 ,
  • .*? - 除换行符以外的零个或多个字符,尽可能少
  • Stopstring - 右侧分隔符。
  • 关于apache-spark - 如果两个字符串之间存在子字符串,则提取两个字符串之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65191877/

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