Функции для работы с регулярными выражениями в Google Таблицах

Эта статья посвящена функциям Google Таблиц, использующие регулярные выражения. Регулярные выражения — специальные шаблоны или маски для поиска текста.

REGEXEXTRACT: извлекаем фрагмент текста из ячейки по шаблону

Итак, пример. Неприятная ситуация: в таблице, из которой вам нужно забрать числовые данные, они занесены как текст с дополнительными символами: «195 EUR», «итого — 220», «оплачено 800 долл» и так далее.
Извлечем числа из текстовых ячеек с помощью REGEXEXCTRACT — функции, извлекающей текст по маске — регулярному выражению.
С помощью регулярных выражений можно составить практически любой текстовый шаблон.

А мы скажем о функции.
Ее синтаксис:
=REGEXEXTRACT(текст;регулярное_выражение)
Текст может быть ссылкой на ячейку или быть собственно текстом в кавычках. Регулярное выражение записывается в кавычках.

В нашем случае текст — это ячейка с данными, а регулярное выражение будет выглядеть так:
[0-9]+
Что означает: любое количество (+) цифр от 0 до 9 ([0-9]), идущих подряд.

Обратите внимание, что функция извлечет числа по такому регулярному выражению. Но они все равно продолжат быть текстом для Google Таблиц.
Их нужно конвертировать в числа с помощью функции ЗНАЧЕН(VALUE).

Смотрим на GIF:
GIF

Примеры других регулярных выражений:

Машин[а-я]{1} — все слова, состоящие из «Машин» и одной любой буквы. То есть Машина, Машины, Машине и т.д.
Долл|Руб — только текст «Долл» или «Руб».
Яндекс[а-я]{0,1} — Слово «Яндекс», а также слово «Яндекс» с любой буквой в конце, например, Яндекса, Яндексу и т.д.

REGEXMATCH: проверяем наличие в ячейке текста, отвечающего заданному шаблону

REGEXMATCH проверяет, содержится ли в ячейке текст, соответствующий регулярному выражению.
Возвращает эта функция логическое значение — ИСТИНА или ЛОЖЬ — в зависимости от того, найден ли в ячейке подходящий текст.

Обратите внимание, что проверяется наличие текста, отвечающего шаблону, а не полное соответствие всего текста, что есть в ячейке.
То есть для всех следующих значений текста в ячейке функция REGEXMATCH(ячейка; «Москва») вернет ИСТИНА:
Москва
Москва, ул. Ленина, 1
125125 Москва, 3-я улица Строителей, 25

В примере проверим:

1. Есть ли в ячейках номера банковских карт (вида 1234 5678 9012 3456). Регулярное выражение — «\d{4} \d{4} \d{4} \d{4}», где \d = цифра, {4} — кол-во идущих подряд цифр.

2. Есть ли в ячейках несколько строчных кириллических букв («[а-я]+») или латинских («[a-z]+»).

Смотрим на GIF:
GIF

REGEXREPLACE. Находим и заменяем текст в ячейке, соответствующий регулярному выражению

Рассмотрим третью функцию Google Таблиц для работы с регулярными выражениями.
Это REGEXREPLACE, позволяющая заменить отдельные фрагменты, соответствующие регулярному выражению, на заданный текст.

Синтаксис:
=REGEXREPLACE (текст, в котором ведем поиск; рег.выражение — что заменяем в тексте ; текст, на который заменяем)

Например, функция:
=REGEXREPLACE(A1;»машин[а-я]{1}»;»автомобиль»)
Заменит в тексте из ячейки A1 все слова «машина», «машину» и другие («машин» + любая буква) на «автомобиль».

Смотрим на GIF:
GIF

Рубрики:
Комментарии
1 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
1 Авторы комментариев
Костя

круто! спасибо за статью

Темы, на которые я пишу: