提取两个数字之间的固定长度字符串

时间:2019-07-19 21:22:25

标签: regex google-sheets google-sheets-formula re2

我有这个数字:003859389453604802410207622210986832370060。在这种情况下,我需要提取07622210986832之前的02,并以37结尾。

在现实世界中,07622210986832始终为14位数字,并且始终以02开头并以37结尾,但是它可能出现在随机字符串中的任意点长度-我们所知道的是数字会在某个地方。

我当前正在使用公式:

 =IF(LEN(IFERROR(REGEXEXTRACT(A1:A&"", "02(.*)37")))=14,

但是,您会注意到数字样本中还有另一个02-“ 024102”。 这引起了一个问题。

我真正想发生的事情是:

  • 查阅02
  • 查找包含14个数字的字符串,如果数字15是3,而16是7(37),那就是我们需要的数字。
  • 如果您发现另一个带有14位数字字符串的02数字,而后面的两个数字不是37-请忽略。

2 个答案:

答案 0 :(得分:2)

使用模式02,它将提取由14个数字组成的序列,其前面是37,然后是Ransack

答案 1 :(得分:0)

尝试这样:

=ARRAYFORMULA(REGEXEXTRACT(TO_TEXT({A2:A,B2:B,C2:C}), "02(\d{14})37"))

如果要将其粉碎成1列,则:

=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(REGEXEXTRACT(TO_TEXT({A2:A,B2:B,C2:C}), 
 "02(\d{14})37")),,999^99))))