MatchRegEx() сравнивает входную строку с одним или несколькими заданными шаблонами регулярных выражений и возвращает числовой индекс местоположения совпадающих шаблонов регулярных выражений. Если совпадений не найдено, функция возвращает 0. Эта функция ищет только точные совпадения.
Эта функция выполняет операции с регулярными выражениями, чувствительные к регистру. В качестве альтернативы можно использовать вариант MatchRegExI() для выполнения операций с регулярными выражениями без учета регистра.
Синтаксис:
MatchRegEx
(text, regex1 [ , regex2,...regexN])
Возвращаемые типы данных: целое
Аргументы
Аргумент
Описание
text
Текст входной строки, который требуется сопоставить с одним или несколькими регулярными выражениями.
regex
Регулярное выражение, с которым нужно попытаться сопоставить входную строку. Можно указать несколько регулярных выражений в одном выражении, разделив их как последовательные аргументы.
Возвращает 3. Третий шаблон регулярного выражения является первым, который соответствует данным.
MatchRegEx('ABC','[abc]+','[123]')
Возвращает 0, поскольку MatchRegEx() учитывает регистр.
MatchRegExI('ABC','[abc]+','[123]')
Возвращает 1. Используется вариант функции MatchRegExI() без учета регистра.
Когда это следует использовать
Эта функция может использоваться в следующих случаях:
Проверка текста на соблюдение стандартов форматирования и соответствия, а также выявление ошибок в данных.
Выявление различий в форматировании текста. Например, можно определить, сколько телефонных номеров используют формат A, формат B и т. д.
Пример 1: скрипт загрузки для анализа форматов телефонных номеров
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Таблица BusinessContactInfo, содержащая номера контактных телефонов для различных предприятий. Номера телефонов ― это 10-значные телефонные номера стандарта NANP (Североамериканский план телефонной нумерации).
Вычисляемое поле PhoneNumberFormat для оценки соответствия каждого телефонного номера одному из определенного набора форматов телефонных номеров.
Есть три различных формата, которые требуется проверить: (###) ###-####, ###-###-#### и ##########.
Скрипт загрузки
BusinessContactInfo:
Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID CompanyName ContactInfo
1 Company A (123) 456-7890
2 Company B 0123456790
3 Company C 234-567-8901
4 Company D (024) 680-2456
5 Company E (135) 791-3579
6 Company F 8901234567
7 Company G 235-235-2352
8 Company H (555) (555) (5555)
9 Company I 2342342343
10 Company J 444-444-4444
` (delimiter is '\t');
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
CompanyName
ContactInfo
PhoneNumberFormat
Таблица результатов
CompanyName
ContactInfo
PhoneNumberFormat
Company A
(123) 456-7890
1
Company B
0123456790
3
Company C
234-567-8901
2
Company D
(024) 680-2456
1
Company E
(135) 791-3579
1
Company F
8901234567
3
Company G
235-235-2352
2
Company H
(555) (555) (5555)
0
Company I
2342342343
3
Company J
444-444-4444
2
Отсюда, например, можно создать ключевые показатели эффективности для подсчета общего количества телефонных номеров каждого формата, а также количества телефонных номеров, которые не соответствуют распознаваемому формату:
Примеры выражений агрегирования для подсчета повторений каждого формата
Пример 2: выражение диаграммы для определения формата ISBN
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Таблица Books, в которой перечислены коды ISBN для различных книг.
Из этих данных требуется определить, является ли каждый код ISBN допустимым 10-значным или 13-значным кодом, основываясь на синтаксисе, указанном в шаблоне регулярного выражения.
Скрипт загрузки
Books:
Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
Book
Добавьте это вычисляемое измерение и присвойте ему метку ISBN Format:
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!