Funkcja CountRegEx() zwraca liczbę wystąpień określonego wzorca wyrażenia regularnego w tekście ciągu wejściowego. W przypadku braku dopasowań zwracane jest 0.
Funkcja ta wykonuje operacje z wyrażeniami regularnymi, w których rozróżniana jest wielkość liter. Zamiast tego można użyć wariantu CountRegExI(), aby wykonywać operacje z wyrażeniami regularnymi bez rozróżniania wielkości liter.
Składnia:
CountRegEx
(text, regex)
Typ zwracanych danych: liczbowy
Argumenty
Argument
Opis
text
Tekst ciągu wejściowego, w którym ma być wyszukiwane wyrażenie regularne.
regex
Wzorzec wyrażenia regularnego do wyszukania.
Przykłady funkcji
Przykład
Wynik
CountRegEx('abc123','[a-z]')
Zwraca wartość 3.
CountRegEx('abc123','[a-z][0-9]')
Zwraca wartość 1.
CountRegEx('abc123','[0-9]')
Zwraca wartość 3.
CountRegEx('ABC','[a-z]{3}')
Zwraca wartość 0.
CountRegExI('ABC','[a-z]{3}')
Zwraca wartość 1. Ponieważ używany jest wariant CountRegExI(), w wyszukiwaniu tekstowym nie jest rozróżniana wielkość liter.
Kiedy używać
Przykłady zastosowań funkcji CountRegEx() obejmują:
Zliczanie liczby wystąpień określonego wzorca tekstowego w ciągu znaków. Można na przykład wyszukiwać wystąpienia adresów e-mail, numerów telefonów i innych informacji w dokumentach i wiadomościach e-mail.
Sprawdzanie, czy dane są zgodne z określonymi wymaganiami dotyczącymi składni. Można na przykład zidentyfikować przypadki błędów przy wprowadzaniu danych.
Przykład 1 — skrypt ładowania do zliczania ważnych zakresów lat
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela o nazwie Vehicles zawierająca wykaz pojazdów wraz ze stanem i rokiem modelowym każdego pojazdu.
Dla każdego rekordu na stronie Vehicles przeprowadzane jest obliczenie w celu określenia, czy zakres lat dla pojazdu jest zgodny z oczekiwaną składnią. Obowiązujące zakresy lat obejmują lata 1990., 2000., 2010. i 2020. Obliczenia te są wykonywane przy użyciu funkcji CountRegEx().
Przykład 3 — wyrażenie wykresu zliczające wystąpienia ciągu znaków
Przegląd
Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej sekcji.
Skrypt ładowania zawiera tekst z korespondencji firmowej, która została wysłana do pracowników pewnej organizacji. Dane zostały już oczyszczone z wszelkich danych osobowych z wyjątkiem nazwy firmy i adresu e-mail, z którego wysłano każdą korespondencję. Treść każdej wiadomości została skondensowana w pojedynczy ciąg znaków. Innymi słowy, wszystkie znaki formatowania i nowej linii zostały usunięte.
Nasze wymagania:
Określenie, które wiadomości zawierają ciąg znaków zawierający adres e-mail TestCompanyNameCorrespondence@test.com, wraz z określonym wprowadzeniem do tego adresu, które wskazuje, że był on adresem nadawcy.
Chcemy mieć swobodę w wyborze wprowadzeń do identyfikacji, ale także nadal mieć pewne określone ograniczenia. Wprowadzenia Sender i Sent by są uważane za ważne. Aby osiągnąć ten cel, można użyć wzorców wyrażeń regularnych.
Wielkość liter w adresach e-mail nie ma znaczenia. W związku z tym nie powinna mieć znaczenia wielkość liter w wyszukiwaniu.
Skrypt ładowania
Correspondences:
Load * Inline [
ID|MessageBody
1|Sent by-- TestCompanyNameCorrespondence@test.com Good morning TestCompanyName team! I hope you are all well. I am just reaching out about the fabulous benefits package we launched just year. Our goal is to take a poll of what you all think. Can you please rate the new options from 1-10 in a response to this email, by this Tuesday? Thank you!
2|Sender: TestCompanyNameIT@test.com Did you know you can access our IT portal anytime, from any of your company devices? It's true! Reach out to your team lead to learn more.
3|Sender: TESTCOMPANYNAMECORRESPONDENCE@test.COM URGENT: This is a message to inform employees of an ongoing issue with our local branch. The branch will be closed until further notice. Thank you
4|Sender: TestCompanyNameVolunteering@test.com Dear team! We are looking for volunteers to help with this year's charity event! We need 40 volunteers to help with the event. If you are interested, please send an email to your direct supervisor. Thanks, TestCompanyName team members, for helping make the world a better place!
5|Sender is TestCompanyNameCorrespondence@test.com Hi folks, it's time to announce the annual TestCompanyName staff party! The party will be taking place at the office this year. Please make sure to RSVP, and we hope to see you there! Sincerely, the TestCompanyName management team
] (delimiter is |);
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
We właściwościach miary ustaw Funkcję sumy na Sum. Konfiguruje to wiersz sum w górnej części tabeli tak, aby zliczał całkowitą liczbę rekordów, które przyczyniają się do zliczania.
Miara zlicza liczbę dopasowań do określonego wzorca wyrażeń regularnych w treści wiadomości. We wzorcu wyrażeń regularnych .* oznacza dowolną liczbę dowolnych znaków z wyjątkiem znaków nowej linii. Wzorzec uwzględnia również różnice we wprowadzeniach do adresów e-mail: zarówno Sender, jak i Sent by są poprawnymi dopasowaniami. Wariant funkcji CountRegExI() zapewnia wyszukiwanie bez uwzględniania wielkości liter.
Sent by-- TestCompanyNameCorrespondence@test.com Good morning TestCompanyName team! I hope you are all well. I am just reaching out about the fabulous benefits package we launched just year. Our goal is to take a poll of what you all think. Can you please rate the new options from 1-10 in a response to this email, by this Tuesday? Thank you!
1
2
Sender: TestCompanyNameIT@test.com Did you know you can access our IT portal anytime, from any of your company devices? It's true! Reach out to your team lead to learn more.
0
3
Sender: TESTCOMPANYNAMECORRESPONDENCE@TEST.COM URGENT: This is a message to inform employees of an ongoing issue with our local branch. The branch will be closed until further notice. Thank you
1
4
Sender: TestCompanyNameVolunteering@test.com Dear team! We are looking for volunteers to help with this year's charity event! We need 40 volunteers to help with the event. If you are interested, please send an email to your direct supervisor. Thanks, TestCompanyName team members, for helping make the world a better place!
0
5
Sender is TestCompanyNameCorrespondence@test.com Hi folks, it's time to announce the annual TestCompanyName staff party! The party will be taking place at the office this year. Please make sure to RSVP, and we hope to see you there! Sincerely, the TestCompanyName management team
1
Wśród pięciu wiadomości znajdują się trzy, które pasują do określonego wzorca wyrażeń regularnych. Każda wiadomość zawiera jedno dopasowanie.
InformacjaFunkcja MatchRegEx() jest również przydatna w takich zastosowaniach sprawdzania poprawności.