【问题标题】:REGEXEXTRACT - Is it possible to have two capturesREGEXEXTRACT - 是否可以有两个捕获
【发布时间】:2019-07-20 17:30:46
【问题描述】:

想象一个 100 位的数字,其中 15 后面跟着 10。

使用REGEXEXTRACT 时是否可以有两个捕获组,所以我可以告诉它先查找 15,然后当您到达 10 时,REGEXEXTRACT {6},例如

【问题讨论】:

  • 你想要紧跟在 10 之后的六位数字,在 15 出现之后?
  • @Mathias R. Jessen - 是的,先生

标签: regex google-sheets google-sheets-formula array-formulas


【解决方案1】:
=REGEXEXTRACT(REGEXEXTRACT(""&A2, "15(.+)"), "10(.{6})")

【讨论】:

  • 但是现在最重要的是我如何将它变成 A2:A,B2:B,C2:C 的数组公式?我试过 =ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(REGEXEXTRACT(REGEXEXTRACT(TO_TEXT(""&{A2:A,B2:B,C2:C}), "15(.+)"))》 10(.{10})")))))
  • 与此答案相同,包含在 4 个 IFERROR 函数中 - stackoverflow.com/a/57129095/5632629
  • 我正在使用 =ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(REGEXEXTRACT(TO_TEXT({A2:A,B2:B,C2:C}), "02(\d{ 6,14})37"))),,999^99)))) 用于 stackoverflow.com/a/57129095/5632629。想知道我是否可以将它构建成相同的?
  • 成功:=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(REGEXEXTRACT(REGEXEXTRACT(TO_TEXT({A2:A,B2:B,C2:C})), "^15(.+ )"), "10(.{10})"))),,999^99)))) - 谢谢你的时间 player0 - 真的很感激。
  • @manc_stu 恭喜,但您应该注意,如果可以从同一行的两列中提取字符串,您将获得与此查询粉碎方法一起附加的重复字符串。因此推荐的方法是 IFERRORs 而不是 QUERY 。
猜你喜欢
  • 1970-01-01
  • 2017-03-01
  • 2018-09-17
  • 2014-12-20
  • 2011-06-18
  • 1970-01-01
  • 2010-12-08
  • 2019-09-09
相关资源
最近更新 更多