我有这个数字:003859389453604802410207622210986832370060
。在这种情况下,我需要提取07622210986832
之前的02
,并以37
结尾。
在现实世界中,07622210986832
始终为14位数字,并且始终以02
开头并以37
结尾,但是它可能出现在随机字符串中的任意点长度-我们所知道的是数字会在某个地方。
我当前正在使用公式:
=IF(LEN(IFERROR(REGEXEXTRACT(A1:A&"", "02(.*)37")))=14,
但是,您会注意到数字样本中还有另一个02
-“ 024102”。
这引起了一个问题。
我真正想发生的事情是:
02
3
,而16是7
(37),那就是我们需要的数字。02
数字,而后面的两个数字不是37
-请忽略。答案 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))))