从字符串中提取多个5位数字

时间:2018-12-20 19:40:19

标签: regex google-sheets

我正在尝试从包含文本和不同长度数字的字符串中提取多个5位数字。所有5位数字均以“ DRxxxxx”开头。

源数据示例:

DR32007 DR32008 DR32009 DR32010已于11/26/18与John Boyles一起订购。

我有一个提取所有数字的函数:

=IFERROR(ArrayFormula(SPLIT(SUBSTITUTE(REGEXREPLACE(REGEXREPLACE(A1, "[^\d]", ";"), "[^\d\-\;]", ""),"-", ";"), ";")))

这将输出以下内容:

32007   32008   32009   32010   11  26  18

我想知道是否有一种方法可以仅提取5位数字(均以“ DRxxxxx”开头),而不提取其他数字。

谢谢!

2 个答案:

答案 0 :(得分:2)

使用正则表达式可以查找数字,并使用方括号将出现的最少次数(例如\ d {5})查找为5。您还可以在DR(\ d {5,})周围加上括号,这样它就可以作为捕获组,并且如果您不希望这样做,则不包括DR

答案 1 :(得分:1)

Google表格论坛的一些解决方案:

来自:Spence Farris:

=filter(IFERROR(ArrayFormula(SPLIT(SUBSTITUTE(REGEXREPLACE(REGEXREPLACE(A1, "[^\d]", ";"), "[^\d\-\;]", ""),"-", ";"), ";"))),LEN(IFERROR(ArrayFormula(SPLIT(SUBSTITUTE(REGEXREPLACE(REGEXREPLACE(A1, "[^\d]", ";"), "[^\d\-\;]", ""),"-", ";"), ";"))))=5)

来自:maddy ...

=filter(right(split(A1," "),5),regexmatch(split(A1," "),"DR\d{5}"))