РЕГВЫРАЖЕН.ИЗВЛЕЧ
Функция РЕГВЫРАЖЕН.ИЗВЛЕЧ возвращает совпадения или группы захвата в совпадении указанного регулярного выражения в исходной строке.
РЕГВЫРАЖЕН.ИЗВЛЕЧ(исходная строка; строка регулярного выражения; номер совпадения; номер группы захвата)
исходн. строка: строковое значение, с которым выполняется сопоставление.
строка регулярного выражения: строковое значение, представляющее регулярное выражение, которое используется для сопоставления с исходной строкой.
номер совпадения: необязательное целое число, указывающее, какое совпадение должно быть возвращено при наличии нескольких совпадений. Допускается использование отрицательных целых чисел для вывода совпадений в обратном порядке. Таким образом, -1 — последнее совпадение и т. д. Если присвоено значение 0, то возвращается массив всех совпадений. По умолчанию возвращается первое совпадение.
номер группы захвата: необязательное целое число, указывающее, какая группа захвата внутри совпадения должна быть возвращена при наличии групп захвата в регулярном выражении. Отрицательные значения недопустимы. В случае возврата значения 0 будет возвращен массив всех групп захвата. По умолчанию возвращается все совпадение целиком.
Примечания
Строка регулярного выражения должна соответствовать стандарту ICU.
Примеры |
---|
Чтобы упростить работу с данными, которые сложно вместить в строки и столбцы таблицы, можно использовать функцию РЕГВЫРАЖЕН.ИЗВЛЕЧ. Например, данные в следующей таблице имеют определенную структуру. Но вручную разделять эти данные по разным ячейкам для просмотра может быть неудобно. |
A | |
---|---|
1 | Отзывы пользователей |
2 | Электронный адрес: jtalma@icloud.com Имя: Юлия Терентьева Дата: 17.05.2021 |
3 | Электронный адрес: danny_rico@icloud.com Имя: Даниил Раков Дата: 02.06.2021 |
Чтобы решить эту проблему, можно добавить в таблицу несколько столбцов для параметров «Имя», «Электронный адрес», «Рейтинг» и «Дата», а затем с помощью функции РЕГВЫРАЖЕН.ИЗВЛЕЧ искать нужные данные и возвращать их в ячейку. Например, чтобы вернуть значение параметра «Имя», можно ввести следующую формулу. В этой формуле использованы следующие аргументы:
Эту формулу можно повторить для каждой строки с данными. В этом случае она вернет имя каждого участвовавшего в опросе человека, изменяя аргумент исходн. строка таким образом, чтобы он соответствовал другим ячейкам, содержащим информацию об отзывах пользователей. |
Чтобы решить эту проблему, можно добавить в таблицу несколько столбцов для параметров «Имя», «Электронный адрес», «Рейтинг» и «Дата», а затем с помощью функции РЕГВЫРАЖЕН.ИЗВЛЕЧ искать нужные данные и возвращать их в ячейку. Например, можно ввести следующую формулу. В этой формуле использованы следующие аргументы:
|
Изменение порядка данных в списке с помощью аргумента номер совпадения |
---|
Иногда встречаются такие данные, как следующая таблица «Поставщики», в значения в которой собраны в одной ячейке. |
Поставщик | Товар |
---|---|
A | Чечевица, Нут, Лимская фасоль |
B | Яблоки, Апельсины, Лимоны |
C | Киноа, Рис, Чиа |
Чтобы разделить значения по наличию и категории, сначала можно создать новую таблицу. Пример такой таблицы приведен ниже. |
A | B | C | D | |
---|---|---|---|---|
1 | Категория | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
Чтобы вернуть значение «Чечевица» (товар высшей категории для поставщика A), можно использовать такую формулу, как эта, в ячейке B2 новой таблицы. В этой формуле использованы следующие аргументы:
|
Вышеприведенную формулу можно легко изменить для работы в таблице с другими поставщиками и другими товарами.
|
Дополнительные примеры |
---|
Допустим, в ячейке A1 содержится текст «marina@example.com john@example.ca mike@example.de». =РЕГВЫРАЖЕН.ИЗВЛЕЧ(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") возвращает «marina@example.com». =РЕГВЫРАЖЕН.ИЗВЛЕЧ(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2) возвращает «john@example.ca». =РЕГВЫРАЖЕН.ИЗВЛЕЧ(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; -1) возвращает «mike@example.de». =РЕГВЫРАЖЕН.ИЗВЛЕЧ(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 1; 1) возвращает «marina». =РЕГВЫРАЖЕН.ИЗВЛЕЧ(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2; 2) возвращает «example.ca». |