Функция REGEXEXTRACT в Google Таблицах является частью набора функций REGEX, доступного многим пользователям. Эта функция очень удобна, когда вы пытаетесь найти определенную строку, которая является частью более крупной.

Единственное условие для использования этой функции — твердое знание регулярных выражений.

В этом руководстве мы подробно обсудим функцию REGEXEXTRACT, а также несколько примеров того, как вы можете применить их в некоторых общих задачах с электронными таблицами.

Что делает функция REGEXTRACT?

Функция REGEXEXTRACT в основном использует регулярные выражения для извлечения совпадающих подстрок из строки. Она принимает строку и регулярное выражение и возвращает часть строки, которая соответствует шаблону в регулярном выражении.

Синтаксис функции REGEXEXTRACT

Синтаксис функции REGEXTRACT следующий:

REGEXEXTRACT (text; reg_exp)

Здесь,

  • text — это текст или строка, из которой вы хотите извлечь подстроку
  • reg_exp — регулярное выражение. Выражение соответствует той части текста, которую вы хотите извлечь. Параметр регулярного выражения следует заключать в двойные кавычки.

Примечание: функция всегда возвращает первую часть текста, которая соответствует шаблону в reg_exp.

Приложения функции REGEXTRACT

Функция REGEXEXTRACT может быть весьма полезной, если вы хотите извлечь ценную информацию из набора строк, которые не совсем «однородны» или согласованы по формату.

Вот несколько полезных приложений функции REGEXEXTRACT. Вы можете использовать её следующим образом:

  • Извлечь первые или последние несколько символов из строки
  • Извлечь числа из строки
  • Извлекать целые слова на основе частичного совпадения
  • Извлечь одно из списка слов
  • Извлечь содержимое между определенными символами
  • Извлечь разные части URL
  • Извлекайте разные части адресов электронной почты

Давайте посмотрим, как REGEXREPLACE можно использовать в каждом из вышеуказанных приложений.

Использование функции REGEXEXTRACT для извлечения первых или последних символов из строки

Давайте сначала посмотрим, как вы можете использовать REGEXREPLACE для извлечения первых или последних нескольких символов или слов из строки.

Допустим, у вас есть следующий список названий книг в столбце A:

Если вы хотите извлечь только первые, скажем, 3 символа из каждой ячейки, вы можете использовать символ одной точки (.). Одна точка в регулярном выражении используется для обозначения одного символа. Поэтому, если вы хотите извлечь 3 символа из строки, вам необходимо указать 3 точки в параметре регулярного выражения, как показано ниже:

=REGEXEXTRACT(A2,"...")

Вот результат, который вы получите:

Точно так же, если вы хотите извлечь последние 3 символа из каждой ячейки, вы можете использовать 3 точки, за которыми следует метасимвол $, поскольку символ доллара представляет собой конец строки.

Итак, ваша формула будет такой:

=REGEXEXTRACT(A2,"...$")

Вот результат, который вы получите:

Символ точки представляет любой символ, включая пробел или любой другой символ. Таким образом, использование «. +» В регулярном выражении просто извлечет весь текст в ячейке.

Если вы хотите убедиться, что вы извлекаете только буквенно-цифровые символы, то вместо символа точки вы можете использовать метасимвол w, который представляет один буквенно-цифровой символ (цифру, букву или подчеркивание).

Итак, если вы хотите извлечь первое слово целиком, вам нужно будет использовать комбинацию «w +». Это гарантирует, что любые символы перед первым пробелом будут извлечены следующим образом:

=REGEXEXTRACT(A2,"\w+")

Точно так же, чтобы извлечь последнее слово, формула будет выглядеть так:

=REGEXEXTRACT(A2,"\w+$")

Вот результат, который вы получите:

Использование функции REGEXEXTRACT для извлечения чисел из строки

Метасимвол d представляет собой числовую цифру. Таким образом, если вы хотите извлечь первое число из строки, вы можете использовать выражение «d +» следующим образом:

=REGEXEXTRACT(A2,"\d+")

Вот результаты, которые вы получите для следующего списка строк:

Использование функции REGEXTRACT для извлечения целых слов на основе частичного совпадения

Допустим, у вас есть следующий список строк и вы хотите извлечь все номера автомобильных номеров, которые начинаются с символов ‘L-‘:

Затем вы можете использовать требуемый шаблон строки, за которым следует «w +», как показано ниже:

=REGEXEXTRACT(A2,"L-\w+")

Это даст вам следующий результат:

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

Если вы хотите извлечь первое слово в каждой строке, которая начинается с ‘bo’ и заканчивается ‘d’, вы можете использовать функцию REGEXEXTRACT следующим образом:

=REGEXEXTRACT(A2,"bo\w+d")

Это даст вам следующий результат:

Обратите внимание, что в последнем примере функция извлекла только первое слово в строке, следующей за шаблоном «bo… d». Если вместо этого вы хотите, чтобы он извлекал последнее слово, вам нужно будет добавить метасимвол доллара ($) в конце:

=REGEXEXTRACT(A2,"bo\w+d$")

Это даст вам следующий результат:

Использование функции REGEXEXTRACT для извлечения одного из списка слов

Метасимвол «|» представляет собой операцию «OR». Итак, если вы хотите извлечь одно слово из списка слов или символов, вы можете использовать этот символ в функции REGEXMATCH.

Например, допустим, у вас есть следующий список строк:

Если вы хотите извлечь первое вхождение любого из слов красный, синий, зеленый или желтый в ячейке A2, вы можете использовать функцию REGEXTRACT следующим образом:

=REGEXEXTRACT(A2,"red|blue|green|yellow")

Это даст вам следующий результат:

Использование функции REGEXTRACT для извлечения содержимого между определенными символами

Обычно функция REGEXREPLACE используется для извлечения содержимого между определенными символами. Например, предположим, что вы скопировали некоторый текст разметки с веб-сайта и вам нужно извлечь только его текстовую часть, удалив теги HTML:

Теперь вы можете подумать, что простого использования регулярного выражения ‘>. + <‘ Будет достаточно для извлечения всего содержимого между символами ‘>’ и ‘<‘:

= REGEXTRACT (A2; ">. + <")

Однако при этом также будут извлечены символы вместе с текстом между ними, как показано ниже:

Чтобы извлечь только текст между ними и исключить разграничивающие символы, вам необходимо заключить метасимвол «. +» В групповые скобки «()». Это гарантирует, что будет извлечено только содержимое внутри групповых скобок:

= REGEXTRACT (A2; "> (. +) <")

Это даст вам следующий результат:

Использование функции REGEXEXTRACT для извлечения различных частей URL-адреса

Если вы хотите извлечь доменное имя URL-адреса, вы можете использовать REGEXEXTRACT следующим образом:

=REGEXEXTRACT(A2,"http.+\ / \ /(.+) \ /")

Это извлечет все содержимое между шаблоном HTTP: // (или HTTPS: //) и символом ‘/’.

Приведенная выше формула даст вам следующий результат:

Если вы хотите удалить все и извлечь только основное доменное имя (без каких-либо поддоменов или расширений, тогда ваша функция REGEXEXTRACT может быть уточнена следующим образом:

=REGEXEXTRACT(A27,"http.+\ / \ / \ w+\.(.+)\.[org|com]")

Здесь мы убедились, что все слова перед точкой и после нее удалены. Поскольку слово после точки может быть любым из слов org или com, мы указали их в квадратных скобках.

Это даст вам следующий результат:

Использование функции REGEXTRACT для извлечения различных частей адреса электронной почты

Как и в предыдущем примере, мы также можем использовать REGEXEXTRACT для извлечения частей адреса электронной почты. Например, предположим, что у вас есть следующий список адресов электронной почты:

Если вы хотите извлечь только часть имени пользователя из адресов электронной почты, вы можете использовать функцию REGEXEXTRACT для извлечения всего, что стоит перед символом ‘@’, следующим образом:

= REGEXTRACT (A33; "(. +) @")

Это даст вам следующий результат:

Мы использовали метасимвол точка вместо w, потому что мы хотим, чтобы выражение учитывало любой символ в имени пользователя, включая точки, дефисы или подчеркивания (как в третьем примере).

Если вместо имени пользователя вас больше интересует извлечение части имени домена из адреса электронной почты, вы можете использовать функцию REGEXEXTRACT следующим образом:

= REGEXTRACT (A33; "@ (. +)")

Это даст вам следующий результат:

Использование функции REGEXTRACT для извлечения определенного шаблона символов

Допустим, у вас есть следующий список строк и вы хотите извлечь номера телефонов из каждой ячейки:

Поскольку все телефонные номера в США следуют одному шаблону, вы можете использовать функцию REGEXTRACT следующим образом:

= REGEXTRACT (A40; "(...) ...-....")

Здесь каждая точка представляет один символ. Однако вместо того, чтобы ставить столько точек, вы можете сократить регулярное выражение, поставив за точкой после точки количество символов, заключенных в фигурные скобки.

Поэтому вместо «…» вы можете использовать «. {3}» в своем выражении. Это означает, что приведенная выше формула также может быть записана как:

= REGEXTRACT (A40; "(. {3}). {3} -. {4}")

У вас есть 3 числа в круглых скобках, за которыми следуют еще три числа, за ними следует дефис и еще 4 числа.

Это даст вам следующий результат:

А теперь прикольный трюк. Если вы также хотите разделить части номера телефона на отдельные столбцы для кода города, кода обмена и номера абонента, вы можете заключить в круглые скобки каждую часть, которую хотите, в один столбец.

Итак, чтобы разделить результат приведенной выше формулы на три разных столбца, ваша функция REGEXTRACT может быть записана как:

= REGEXTRACT (A40, "((. {3})) (. {3}) - (. {4})")

Это даст вам следующий результат:

Это были несколько простых примеров того, как функция REGEXEXTRACT может эффективно помочь вам извлечь именно то, что вам нужно, из строки.

REGEXEXTRACT Совет по функциям Google Таблиц:

Вот несколько важных советов, которые необходимо помнить при использовании функции REGEXEXTRACT.

  • Эта функция работает только с вводом текста. Не работает с числами
  • Если вы хотите использовать числа в качестве входных данных (например, телефонные номера), вам необходимо сначала преобразовать их в текст, используя функцию TEXT.
  • Функция REGEXEXTRACT чувствительна к регистру. Следовательно, вам нужно будет указать правильный регистр внутри регулярного выражения или преобразовать всю входную строку в верхний или нижний регистр с помощью функций UPPER или LOWER.

Функция REGEXEXTRACT может иметь множество приложений, если вы научитесь ее эффективно использовать. Хорошее знание регулярных выражений помогает, и лучший способ овладеть им — это попрактиковаться.

Поиграйте с различными регулярными выражениями и посмотрите, какие результаты вы получите. Вы будете удивлены, насколько полезной может быть функция REGEXEXTRACT, когда вы начнете использовать ее для повседневных данных электронной таблицы.