Извлечение нескольких 5-значных чисел из строк - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь извлечь несколько 5-значных чисел из строк, которые содержат текст и цифры разной длины.Все 5-значные числа будут обработаны с помощью «DRxxxxx».

И пример исходных данных:

DR32007 DR32008 DR32009 DR32010, заказанный 26.1118 с Джоном Бойлсом.

У меня есть функция, которая извлекает все числа:

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

И это выводит следующее:

32007   32008   32009   32010   11  26  18

Мне интересно, есть ли способ извлечь только 5 цифрномера (все следуют "DRxxxxx"), а не другие номера.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Несколько решений с форума Google Sheets:

От: Спенс Фаррис:

=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}"))
0 голосов
/ 20 декабря 2018

Используя регулярное выражение, вы можете искать цифры, а с помощью скобок для минимального числа вхождений, например, \ d {5,}, найдете 5 вхождений цифр.Вы также можете поставить круглые скобки вокруг DR (\ d {5,}), чтобы он мог быть группой захвата и не включать DR, если вы не хотите, чтобы это

...