Извлечь все совпадения в строке с помощью REGEXEXTRACT в Google Таблицах - PullRequest
2 голосов
/ 20 июня 2020

У меня есть ячейка с такими значениями: aasdf123asdf34asdf3

Я хочу извлечь все группы последовательных чисел: 123, 34 и 3.

Я думаю, это регулярное выражение, которое мне нужно: (\d+).

Но оно извлекает только первое совпадение.

Это работает вне Google Таблиц. Не знаю, почему я не могу заставить его работать в Google Таблицах.

https://regexr.com/572et

1 Ответ

3 голосов
/ 20 июня 2020

Вы можете попытаться создать нужную строку CSV напрямую, используя REGEXREPLACE:

=REGEXREPLACE(REGEXREPLACE("aasdf123asdf34asdf3", "\D+", ","), "^,|,$", "")

Внутренний вызов REGEXREPLACE заменяет все кластеры non di git символы с запятой. Затем внешний вызов удалил все начальные / конечные запятые, которые могла остаться после первой замены.

Sample of REGEXREPLACE


Moreover you can use SPLIT, чтобы разделить значения в каждой отдельной ячейке:

=TRANSPOSE( SPLIT(REGEXREPLACE(REGEXREPLACE("aasdf123asdf34asdf3", "\D+", ","), "^,|,$", ""), ","))

Sample with SPLIT

In here the TRANSPOSE функция просто складывает совпадения по вертикали, а не по горизонтали, поскольку SPLIT положит их по умолчанию.

...