【问题标题】:How to use REGEXTRACT to extract certain characters between two strings如何使用 REEXTRACT 提取两个字符串之间的某些字符
【发布时间】:2021-12-24 05:14:57
【问题描述】:

我试图在不同字符之间提取一个人的名字。例如,单元格包含此信息

PATIENT: 2029985 - COLLINS, JUNIOR .
PATIENT: 1235231-02 - JERRY JR, PATRICK .
PATIENT: 986435--EXP-- - JULIUS, DANIEL .
PATIENT: 2021118-02 - DRED-HARRY, KEVIN .

我的目标是使用一个 REEXTRACT 公式得到以下结果:

COLLINS, JUNIOR
JERRY JR, PATRICK
JULIUS, DANIEL
LOVE ALSTON, BRENDA

到目前为止,我已经想出了公式:

=ARRAYFORMULA(REGEXEXTRACT(B3:B, "-(.*)\."))

其中 B3 包含第一个信息

使用该公式,我得到:

COLLINS, JUNIOR
02 - JERRY JR, PATRICK
02 - LOVE-ALSTON, BRENDA 
-EXP-- - JULIUS, DANIEL
02 - DRED-HARRY, KEVIN

我设法记下了名字,但我该如何提取其余的名字。

【问题讨论】:

    标签: regex google-sheets regex-negation


    【解决方案1】:

    你可以使用

    =ARRAYFORMULA(REGEXEXTRACT(B3:B, "\s-\s+([^.]*?)\s*\."))
    

    请参阅regex demo详情

    • \s-\s+ - 一个空格,-,一个或多个空格
    • ([^.]*?) - 第 1 组:除 . 之外的零个或多个字符尽可能少
    • \s* - 零个或多个空格
    • \. - . 字符。

    【讨论】:

    • 行得通!不过我还有一个问题。如果在另一个单元格中,信息有一个句号,句号之间没有空格怎么办。例如,患者:2021118-02 - DRED-HARRY, JASON。 (这一次,句号之间没有空格)。哪个公式可以同时满足句号末尾有空格和没有空格的条件?
    • @KielPagtama 将 \s+ 更改为 \s*
    • 非常感谢!效果很好!如果您详细解释为什么该公式有效,可以吗?比如为什么公式中的每个变量都按照它的方式工作,以及它们如何协同工作产生结果?
    • @KielPagtama 我已经解释了模式,到底是什么不清楚?请注意,捕获组 Group 1 是 REGEXEXTRACT 的实际结果,因为如果模式中有捕获组,它只会返回捕获的子字符串。
    • @KielPagtama 是的,但是结果将跨越两列。
    【解决方案2】:

    第一种解决方案:使用您显示的示例,请尝试以下正则表达式。

    Online demo for above regex

    ^PATIENT:.*-\s+([^.]*?)\s*\.
    

    尝试关注 Google 表格论坛:

    =ARRAYFORMULA(REGEXEXTRACT(B3:B, "^PATIENT:.*-\s+([^.]*?)\s*\."))
    

    解释: 检查行/值是否从 PATIENT 开始,然后是 : 直到 -(这里使用贪婪机制),然后是空格(1或更多次出现)。然后创建一个且唯一的捕获组,其中包含 .(dot) 之前的所有内容,使其不贪婪,关闭捕获组,后跟空格(0 次或多次出现),后跟文字点。



    第二个解决方案:在正则表达式中使用惰性匹配方法,请尝试以下正则表达式。

    .*?\s-\s([^.]*?)\s*\.
    

    Google-sheet 公式如下:

    =ARRAYFORMULA(REGEXEXTRACT(B3:B, ".*?\s-\s([^.]*?)\s*\."))
    

    Online demo for above regex

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2019-10-10
      • 2020-10-15
      相关资源
      最近更新 更多