首页 > 解决方案 > 通过公式从单元格中提取数据但不提取部分数据

问题描述

我一直在从需要更多结果的单元格中提取数据,但我的公式正在提取一些数据,而不是我需要的全部数据。

如果我能得到帮助,我在下面附上了一张纸,将不胜感激。

我的公式。

=ArrayFormula(TRIM(REGEXREPLACE(A3:A,"\.\.\.(.*)|\*\*\*","")))
=ArrayFormula(IFERROR(TRIM(REGEXEXTRACT(A3:A, "DONE=>\s*.+\b"))))

https://docs.google.com/spreadsheets/d/1MKC1OWIj64v_mmuNM6mLFY9wMgLwl2mUxm6KnsM5arE/edit#gid=0

标签: regexgoogle-sheetsfindmatch

解决方案


您可以使用的正则表达式是

=ArrayFormula(TRIM(REGEXREPLACE(A3:A,"(\*{3}.*?)(?:\s*\.{3}DONE=>.*)?(\*{3})$","$1 $2")))
=ArrayFormula(IFERROR(TRIM(REGEXEXTRACT(REGEXREPLACE(A3:A, "^([^-]*-)[^-]+-", "$1"), ".*DONE=>.*"))))

请参阅第一个正则表达式演示第二个正则表达式演示。第三个 - .*DONE=>.*- 简单地返回其中包含DONE=>的所有字符串。

详情

  • (\*{3}.*?)- 第 1 组 ( $1):三个*字符,然后是除换行符之外的任何零个或多个字符,尽可能少
  • (?:\s*\.{3}DONE=>.*)?- 零个或多个空格的可选字符串,***DONE=>然后是字符串的其余部分
  • (\*{3})- 第 2 组 ( $2):***字符串
  • $- 字符串结束。

^([^-]*-)[^-]+-比赛_

  • ^- 字符串的开始
  • ([^-]*-)- 第 1 组 ( $1):任何零个或多个字符-,然后是 a-
  • [^-]+-- 一个或多个字符,而不是-一个-字符。

推荐阅读