regex - 如何使用 REGEXTRACT 提取两个字符串之间的某些字符

标签 regex google-sheets regex-negation

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

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

我的目标是使用一个 REGEXTRACT 公式来获得以下结果:

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

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

最佳答案

你可以使用

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

请参阅regex demo详细信息:

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

关于regex - 如何使用 REGEXTRACT 提取两个字符串之间的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69933037/

相关文章:

javascript - 正则表达式 javascript - 匹配或

javascript - 使翻译功能不再翻译结果

java - 如何使用正则表达式或任何方法从较大的字符串中抓取字符串的一部分

javascript - 正则表达式 : only match word if it doesn't start with a dot

javascript - 如何使用 JavaScript 创建用户名正则表达式?

python - 正则表达式 : Remove all commas between a quote separated string [python]

regex - Elasticsearch Regex匹配以一个字符串开头但不以另一个字符串结尾的url,而无需前后查找

mysql - 如何在 Google 表格的查询中使用 MAX 返回行?

javascript - 如何使用 onOpen 触发器脚本更改 Google 表格行为?

google-apps-script - 如何在 Google Apps 脚本中将 Google 表单响应目标设置为两个不同的电子表格?