Продукти, послуги та функції операційної системи
можуть бути недоступними в цій країні.

REGEX.EXTRACT

Функція REGEX.EXTRACT повертає збіги або групи захоплення у збігу даного регулярного виразу в рядку-джерелі.

REGEX.EXTRACT(рядок-джерело; рядок-регулярний-вираз; входження-збіг; входження-група-захоплення)

рядок-джерела: рядок, у якому шукають збіги.

рядок-регулярного-виразу: рядкове значення, яке відображає регулярний вираз, який використовується для пошуку збігу в рядку-джерелі.

входження-збіг: необов’язкове ціле число, яке вказує, котрий зі збігів буде повернено, якщо їх декілька. Від’ємні цілі числа дозволяють рахувати збіги з кінця: значення -1 поверне останній збіг, і так далі. Якщо значення 0, повертається масив усіх збігів. Якщо значення пропущено, повертається перший збіг.

входження-група-захоплення: необов’язкове ціле число, яке вказує, яку групу захоплення в збігу буде повернено, якщо в регулярному виразі є групи захоплення. Від’ємні значення не приймаються. Якщо значення 0, повертається масив усіх груп захоплення. Якщо значення пропущено, повертається увесь збіг.

Примітки

  • Рядковий-регулярний-вираз має бути сформований за стандартом ICU.

Приклади

Якщо у вас є дані, які не вміщуються в рядки та стовпці електронної таблиці, ви можете скористатися REGEX.EXTRACT для спрощення. Наприклад, у наведеній нижче таблиці дані мають певну структуру, однак вручну розділити дані на кілька клітинок для перегляду може бути складно.

A

1

Огляди користувачів

2

Електронна пошта: nmykytiuk@icloud.com Ім’я: Наталя Микитюк Дата: 17.05.2021

3

Електронна пошта: danylo_kosach@icloud.com Ім’я: Данило Косач Дата: 02.06.2021

Щоб виправити це, можна додати більше стовпців у таблицю для імені, електронної адреси, рейтингу та дати, а потім використати REGEX.EXTRACT для пошуку потрібних даних і відображення їх у клітинці.

Наприклад, щоб повернути ім’я, можна ввести таку формулу:

Редактор формул, у якому показано формулу =REGEX.EXTRACT(A2;"(?<=Ім’я: )(.*)(?= Дата)".

У цій формулі використовуються такі аргументи:

  • рядок-джерела: A2 — клітинка з даними, у яких слід шукати ім’я.

  • рядок-регулярного-виразу: «(?<=Ім’я: )(.*)(?= Дата)" — регулярний вираз, який шукає текст між рядками "Ім’я: » і «Дата».

Цю формулу можна повторювати для кожного рядка даних, щоб повернути ім’я кожної людини, що відповіла на опитування, змінюючи рядок-джерело відповідно до інших клітинок з інформацією про відгуки користувачів.

Щоб виправити це, можна додати більше стовпців у таблицю для імені, електронної адреси, рейтингу та дати, а потім використати REGEX.EXTRACT для пошуку потрібних даних і відображення їх у клітинці.

Наприклад, можна ввести таку формулу:

Редактор формул, у якому показано формулу =REGEX.EXTRACT(A2;"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2;4}")

У цій формулі використовуються такі аргументи:

  • рядок-джерела: A2 — клітинка з даними, у яких слід шукати електронного листа.

  • рядок-регулярного-виразу: «[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2;4}» — регулярний вираз, який шукає електронну адресу за шаблоном.

Перевпорядковуйте дані зі списку за допомогою аргументу входження-збіг

Інколи ви можете отримувати дані, як-от таблиця нижче (під назвою «Постачальники»), яка групує значення в клітинці.

Постачальник

Товар

A

Сочевиця, Нут, Ліма

B

Яблука, Апельсини, Лимони

C

Кіноа, Рис, Чіа

Щоб відділити значення за магазином і рейтингом, спершу можна створити нову таблицю на кшталт наведеної нижче.

A

B

C

D

1

Рейтинг

A

B

C

2

1

3

2

4

3

Щоб повернути значення «Сочевиця», найзатребуваніший товар постачальника A, можна використати формулу на кшталт тієї, що в клітинці B2 нової таблиці.

Редактор формул, у якому показано формулу =REGEX.EXTRACT(Постачальники::B2;"\w+";ROW(A2)-1).

У цій формулі використовуються такі аргументи:

  • рядок-джерела: Постачальники::B2 — клітинка з даними, серед яких слід здійснювати пошук. У цьому випадку пошук слід здійснювати в списку в цій клітинці.

  • рядок-регулярного-виразу: «\W+» — регулярний вираз, який шукає слово.

  • входження-збіг: ROW(A2)-1. У цьому випадку є 3 збіги для кожного REGEX.EXTRACT, і ви можете використати функцію на кшталт ROW, щоб указати потрібний збіг. ROW(A2) повертає номер рядка вибраної клітинки (2), і -1 включається для віднімання рядка заголовка від результату. Інакше повертатиметься значення «Нут» (другий збіг) у цьому прикладі.

    Якщо пропустити входження-збіг, результат для кожного постачальника буде першим повернутим словом («Сочевиця» для постачальника A, «Яблука» для постачальника B тощо).

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

  • Щоб повернути популярні продукти для одного постачальника, можна змінити аргумент входження-збіг. Наприклад, щоб повернути значення «Нут», другий найпопулярніший товар постачальника A, можна змінити посилання на клітинку в аргументі входження-збіг з A2 на A3.

  • Щоб повернути значення для іншого постачальника, можна змінити аргумент рядок-джерела. Наприклад, щоб повернути значення «Яблука», найпопулярніший товар постачальника B, можна змінити посилання на клітинку в аргументі рядок-джерела з B2 на B3.

Додаткові приклади

Нехай A1 = "marina@example.com john@example.ca mike@example.de".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})") повертає "marina@example.com".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; 2) повертає "john@example.ca".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; -1) повертає "mikeexample.de".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; 1; 1) повертає "marina".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; 2; 2) повертає "example.ca".

Дивіться такожREGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Чи була інформація корисна?
Максимальна кількість символів: 250
Максимальна кількість символів: 250.
Дякуємо вам за відгук.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.