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

Extract fixed length string between two numbers

我有这个号码:003859389453604802410207622210986832370060。在这种情况下,我需要提取 07622210986832 出现在 02 之前并以 37.

结尾

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

我目前使用的公式是:

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

但是,您会注意到在数字示例中还有另一个 02 - “024102”。 这导致了一个问题。

我真正想要发生的是:

使用模式 02(\d{14})37,它将提取一个 14 位数字序列,前面是 02,后面是 37

这样试试:

=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))))