Funkcja MatchRegEx() porównuje wejściowy ciąg znaków z jednym lub większą liczbą określonych wzorców wyrażeń regularnych i zwraca liczbową lokalizację pasujących wzorców wyrażeń regularnych. Jeśli nie uda się znaleźć żadnych dopasowań, funkcja zwraca 0. Ta funkcja szuka tylko dokładnych dopasowań.
Funkcja ta wykonuje operacje z wyrażeniami regularnymi, w których rozróżniana jest wielkość liter. Zamiast tego można użyć wariantu MatchRegExI(), aby wykonywać operacje z wyrażeniami regularnymi bez rozróżniania wielkości liter.
Składnia:
MatchRegEx
(text, regex1 [ , regex2,...regexN])
Typ zwracanych danych: liczba całkowita
Argumenty
Argument
Opis
text
Tekst ciągu wejściowego, do którego chcesz dopasować jedno lub więcej wyrażeń regularnych.
regex
Wyrażenie regularne, które ma zostać dopasowane do ciągu wejściowego. W pojedynczym wyrażeniu można podać więcej wyrażeń regularnych, oddzielonych jako kolejne argumenty.
Zwraca 3. Trzeci wzorzec regex jest pierwszym, który pasuje do danych.
MatchRegEx('ABC','[abc]+','[123]')
Zwraca 0, ponieważ MatchRegEx() rozróżnia wielkość liter.
MatchRegExI('ABC','[abc]+','[123]')
Zwraca 1. Jest używany wariant funkcji MatchRegExI(), który nie uwzględnia wielkości liter.
Kiedy używać
Zastosowania tej funkcji są następujące:
Weryfikacja tekstu pod kątem zgodności z formatowaniem i standardami oraz identyfikacja błędów w danych.
Identyfikacja różnic w sposobie formatowania tekstu. Na przykład można określić, ile numerów telefonów używa formatu A, formatu B itd.
Przykład 1 — skrypt ładowania do analizy formatów numerów telefonów
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela BusinessContactInfo zawierająca numery telefonów kontaktowych do różnych firm. Numery telefonów są 10-cyfrowymi numerami NANP.
Pole wyliczane, PhoneNumberFormat, służące do oceny, czy każdy numer telefonu pasuje do jednego z określonego zestawu formatów numerów telefonów.
Istnieją trzy różne formaty, które chcemy sprawdzić: (###) ###-####, ###-###-#### i ##########.
Skrypt ładowania
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');
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
CompanyName
ContactInfo
PhoneNumberFormat
Tabela wynikowa
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
Można teraz, na przykład, utworzyć wskaźniki KPI, aby obliczyć całkowitą liczbę każdego formatu numeru telefonu, a także liczbę numerów telefonów, które nie mają rozpoznanego formatu:
Przykłady wyrażeń agregujących do zliczania wystąpień każdego formatu
Przykład 2 — wyrażenie wykresu identyfikujące format ISBN
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela Books zawierająca kody ISBN różnych książek.
Na podstawie tych danych chcemy zidentyfikować, czy każdy kod ISBN jest prawidłowym kodem 10-cyfrowym lub 13-cyfrowym, w oparciu o składnię określoną we wzorcu regex.
Skrypt ładowania
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
];
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:
Book
Dodaj ten wymiar wyliczany i nadaj mu etykietę ISBN Format: