Udostępnij przez


IsMatch, Matchi MatchAll funkcje

Dotyczy: Aplikacje kanwy Copilot Studio Oparte na modelu aplikacje interfejsu wiersza polecenia platformy Power Platform Funkcje usługi PowerVerse w usłudze Power Pages

Testuje dopasowanie lub wyodrębnia części ciągu tekstowego na podstawie wzorca.

Opis

Funkcja IsMatch sprawdza, czy ciąg tekstowy pasuje do wzorca, który może składać się ze zwykłych znaków, wstępnie zdefiniowanych wzorców lub wyrażenia regularnego. Funkcje Match i MatchAll zwracają dopasowanie, w tym podmaty.

Użyj IsMatch polecenia , aby sprawdzić, co użytkownik wpisił w kontrolce Wprowadzanie tekstu . Na przykład potwierdź, czy użytkownik wprowadził prawidłowy adres e-mail przed zapisaniem wyniku w źródle danych. Jeśli wpis nie jest zgodny z kryteriami, dodaj inne kontrolki, które monituje użytkownika o naprawienie wpisu.

Służy Match do wyodrębniania pierwszego ciągu tekstowego zgodnego ze wzorcem i MatchAll wyodrębniania wszystkich pasujących ciągów tekstowych. Wyodrębnianie podmatów w celu analizowania złożonych ciągów.

Match Zwraca rekord informacji dotyczących pierwszego znalezionego dopasowania i MatchAll zwraca tabelę rekordów dla każdego znalezionego dopasowania. Rekord lub rekordy zawierają następujące dane:

Column Typ Opis
Nazwany podmecz lub podmecze Tekst Każda nazwana podmatnia ma własną kolumnę. Utwórz nazwaną podmatczę przy użyciu (?<nazwa>... ) w wyrażeniu regularnym. Jeśli nazwana podmatnia ma taką samą nazwę jak jedna ze wstępnie zdefiniowanych kolumn, pierwszeństwo ma podmatczość i zostanie wygenerowane ostrzeżenie. Zmień nazwę podpasowania, aby uniknąć tego ostrzeżenia.
Pełny mecz Tekst Wszystkie dopasowane ciągi tekstowe.
Mecz początkowy Numer Pozycja początkowa dopasowania w ciągu tekstowym wejściowym. 1 jest pierwszym zwracanym znakiem ciągu.
PodMatches, tylko wtedy, gdy jest używana funkcja MatchOptions.NumberedSubMatches . Jednokolumnowy tekst tabeli (kolumna Value) Tabela numerowanych podmatów w kolejności, w której są wyświetlane w wyrażeniu regularnym. Ogólnie rzecz biorąc, nazwane podmaty są łatwiejsze do pracy z i są zachęcane. Użyj funkcji ForAll lub indeksu , aby pracować z poszczególnymi podpasowaniami. Jeśli w wyrażeniu regularnym nie zdefiniowano żadnych podmatów, ta tabela będzie obecna, ale pusta.

Te funkcje obsługują MatchOptions. Domyślnie:

  • Te funkcje wykonują dopasowania z uwzględnieniem wielkości liter. Użyj funkcji MatchOptions.IgnoreCase, aby wykonać małe dopasowania bez uwzględniania spraw.
  • IsMatch dopasuje cały ciąg tekstowy (Complete MatchOption) i MatchMatchAll wyszukuje dopasowanie w dowolnym miejscu w ciągu tekstowym (Zawiera matchOption). Użyj funkcji Complete, Contains, BeginsWith lub EndsWith w zależności od potrzeb.

IsMatch Zwraca wartość true , jeśli ciąg tekstowy pasuje do wzorca lub wartości false , jeśli nie. Match Zwraca wartość pustą , jeśli nie znaleziono dopasowania, które można przetestować za pomocą funkcji IsBlank . MatchAll Zwraca pustą tabelę, jeśli nie znaleziono dopasowania, które można przetestować za pomocą funkcji IsEmpty .

Jeśli używasz MatchAll metody do dzielenia ciągu tekstowego, rozważ użycie funkcji Split , która jest prostsza i szybsza.

Wzorce

Aby móc prawidłowo korzystać z tych funkcji, należy przede wszystkim opisać wzorzec używany do dopasowywania. Opisanie wzorca w ciągu tekstowym wymaga kombinacji następujących elementów:

  • Znaków zwykłych, takich jak „abc” lub „123”.
  • Wstępnie zdefiniowanych wzorców, takich jak Letter, MultipleDigits lub Email. (Wyliczenie Match definiuje te wzorce).
  • Kody wyrażeń regularnych, takie jak „\d+\s+\d+” lub „[a-z]+”.

Połącz te elementy przy użyciu operatora łączenia ciągów i . Prawidłowy jest na przykład wzorzec "abc" & Digit & "\s+", który ma następującą postać: znaki „a”, „b” i „c”, cyfry z przedziału od 0 do 9 i co najmniej jeden znak odstępu.

Znaki zwykłe

Najprostszy wzorzec to sekwencja zwykłych znaków, które dokładnie pasują.

Na przykład w przypadku użycia z funkcją IsMatch ciąg "Hello" pasuje dokładnie do wzorca "Hello". Dopasowanie jest dokładne. Ciąg "hello!" nie pasuje do wzorca ze względu na wykrzyknik na końcu i dlatego, że wielkość liter "h" jest nieprawidłowa. (Zobacz Match opcje sposobów modyfikowania tego zachowania).

W języku wzorca znaki . ? * + ( ) [ ] ^ $ | \ są zastrzeżone do celów specjalnych. Aby użyć tych znaków, prefiks znaku z (ukośnikiem odwrotnym \ ), aby wskazać, że znak powinien być traktowany dosłownie lub użyć jednego ze wstępnie zdefiniowanych wzorców. Na przykład można dopasować ciąg "Hello?" przy użyciu wzorca "Hello\\?" z ukośnikiem odwrotnym przed znakiem zapytania.

Wstępnie zdefiniowane wzorce

Wstępnie zdefiniowane wzorce pozwalają w prosty sposób dopasować jeden znak z zestawu lub sekwencję wielu znaków. Użyj operatora łączenia ciągów i połącz własne ciągi tekstowe z elementami wyliczenia Match :

Match wyliczenie Opis Wyrażenie regularne
Jakikolwiek Zastępuje dowolny znak. .
Przecinek Dopasowuje przecinek ,. ,
Cyfra Zastępuje jedną cyfrę z przedziału od „0” do „9”. \d
E-mail Zastępuje adres e-mail, który zawiera symbol „@” i nazwę domeny zwierającą znak kropki („.”) Zobacz notatkę
Łącznik Zastępuje łącznik. - Zobacz notatkę
LeftParen Pasuje do lewego nawiasu (. \(
Litera Zastępuje literę. \p{L}
Wielocyfrowe Zastępuje co najmniej jedną cyfrę. \d+
Wiele liter Zastępuje co najmniej jedną literę. \p{L}+
MultipleNonSpaces (Wiele nie-spacji) Zastępuje co najmniej jeden znak, który nie dodaje odstępu (nie spacja, nie znak tabulacji, ani nie nowy wiersz). \S+
Wiele przestrzeni Zastępuje co najmniej jeden znak, który dodaje odstęp (spacja, znak tabulacji lub nowy wiersz). \s+
Niespacja Zastępuje jeden znak, który nie dodaje odstępu. \S
Cyfry opcjonalne Zastępuje zero lub dowolną liczbę cyfr. \d*
Listy opcjonalne Zastępuje zero lub dowolną liczbę liter. \p{L}*
OptionalNonSpaces (OpcjonalnePrzestrzenie) Zastępuje zero lub dowolną liczbę znaków, które nie dodają odstępów. \S*
Przestrzenie opcjonalne Zastępuje zero lub dowolną liczbę znaków, które dodają odstępy. \s*
Okres Pasuje do kropki lub kropki .. \.
RightParen Dopasowuje prawy nawias ). \)
Przestrzeń Zastępuje znak, który dodaje odstęp. \s
Zakładka Zastępuje znak karty. \t

Na przykład wzorzec "A" i MultipleDigits pasuje do litery "A", po której następuje co najmniej jedna cyfra.

Usługa Power Apps używa innej definicji dla programu Match. Poczta e-mail i Match. Łącznik. Oceń Text( Match.Email ) , aby wyświetlić wyrażenie regularne używane przez hosta.

Wyrażenia regularne

Wzorzec używany przez te funkcje jest nazywany wyrażeniem regularnym. Specyficzny dialekt wyrażeń regularnych power Fx jest szczegółowo opisany w wyrażeniach regularnych w programie Power Fx.

Wyrażenia regularne są zaawansowane i pełnią szeroką gamę celów. Mogą również wyglądać jak losowa sekwencja znaków interpunkcyjnych. Ten artykuł nie opisuje wszystkich aspektów wyrażeń regularnych, ale w Internecie dostępnych jest wiele informacji, samouczków i narzędzi.

Wyrażenia regularne mają długą historię i są dostępne w wielu językach programowania. Każdy język programowania ma swój własny zbiór wyrażeń regularnych i istnieje kilka standardów. Staramy się zapewnić, że to samo wyrażenie regularne daje ten sam wynik we wszystkich implementacjach Power Fx. Kompatybilność nie jest łatwa do osiągnięcia, ponieważ Power Fx działa na JavaScript i .NET, które mają znaczące różnice. Aby obsłużyć uruchamianie na różnych platformach, wyrażenia regularne usługi Power Fx są ograniczone do podzbioru funkcji, które są powszechnie obsługiwane w całej branży.

W związku z tym niektóre wyrażenia regularne, które mogą działać w innych środowiskach, mogą być blokowane lub wymagają dostosowania w programie Power Fx. Błędy czasu tworzenia są zgłaszane w przypadku napotkania nieobsługiwanych funkcji. Jest to jeden z powodów, dla których wyrażenie regularne i opcje muszą być stałą czasu tworzenia, a nie dynamiczną (na przykład podaną w zmiennej).

Uwaga / Notatka

Usługa Power Apps używa starszej wersji wyrażeń regularnych Power Fx, które mają mniej ograniczeń, ale także mniej funkcji. Funkcja MatchOptions.DotAll i MatchOptions.FreeSpacing nie są dostępne i definicje elementu Match. Adres e-mail i Match. Łącznik jest inny. Pary zastępcze Unicode nie są traktowane jako pojedynczy znak. MatchOptions.NumberedSubMatches jest wartością domyślną. Wersja wyrażeń regularnych opisanych tutaj będzie wkrótce dostępna w usłudze Power Apps w ramach przełącznika "Zgodność z programem Power Fx V1.0".

Poniżej przedstawiono kilka podstawowych elementów wyrażeń regularnych, które tworzą złożoność analizowania liczby.

Funkcja Example Opis
Predfined, klasa znaków \d To wyrażenie regularne pasuje do pojedynczej liczby, takiej jak 1. Klasa znaków pasuje do zestawu znaków i \d dopasuje standardowe cyfry 0 do 9 , a także cyfry zdefiniowane w kategorii znaków Unicode "Nd". Istnieją klasy znaków dla liter i cyfr i spacji \w , w tym nowe linie z \s. Istnieją również odwrotne klasy znaków, które są wielkich liter: \D pasuje do wszystkiego, co \d nie.
Co najmniej jeden \d+ To wyrażenie regularne pasuje do co najmniej jednej liczby, takiej jak 123. Element + po elemekcie mówi "co najmniej jeden" ostatniego elementu.
Zero lub jeden \+?\d To wyrażenie regularne jest zgodne z opcjonalnym + znakiem, po którym następuje co najmniej jedna liczba, na przykład +123 i tylko 123. Po ? elemecie jest wyświetlany komunikat "jest to opcjonalne, może wystąpić zero lub jeden raz". Znak + ma ukośnik odwrotny, aby odróżnić go jako znak literału, a nie "co najmniej jedno" użycie.
Grupowanie i zmiana (-|\+)?\d+ To wyrażenie regularne pasuje do + znaku lub -, opcjonalnie, a następnie serii liczb, takich jak -123, +123i 123. W tym miejscu wprowadzamy dwie koncepcje, które są często używane razem. Po pierwsze, mamy nawiasy, które grupują jako zestaw elementów razem, dla elementu ? do działania. Po drugie, mamy | polecenie "to lub to".
Niestandardowa klasa znaków (-|\+)?\d+[eE][\-\+]?\d+ To wyrażenie regularne dodaje wykładnik do mieszanki z dwiema klasami znaków, pasując do +123e-12klasy . Klasa znaków jest jak | zmiana zapewniająca "dopasowanie jednej z tych rzeczy" w bardziej kompaktowej formie. Podobnie jak w przypadku elementu +, - ma specjalne znaczenie w klasach znaków wyrażeń regularnych, więc musimy go uniknąć.
Zero lub więcej (-|\+)?\d+\.?\d*[eE][\-\+]?\d+ To wyrażenie regularne dodaje liczbę dziesiętną po części całkowitej liczby, takiej jak -123.456e-89 lub -123.E+32. Po \d przecinku dziesiętnym ma * kwantyfikator, który mówi "zero lub więcej razy" dla cyfr dziesiętnych po .
Przechwytywanie grup (?&lt;number&gt;(-|\+)?\d+\.?\d*)[eE](?&lt;exponent&gt;[\-\+]?\d+) Na koniec dodajemy grupy przechwytywania dla i numberexponent. Wyrażenie regularne nie tylko może być zgodne z całym ciągiem, ale także wyodrębniać fragmenty do użycia w formułach, w tym przypadku część przed e (lub E) i część po.

Te przykłady dają tylko niewielki smak tego, co mogą robić wyrażenia regularne. Są one często używane do weryfikowania numerów identyfikacyjnych, adresów e-mail, numerów telefonów, dat i godzin oraz wyodrębniania informacji z wszystkich rodzajów plików tekstowych. Kontynuuj swoją podróż, czytając wyrażenia regularne w programie Power Fx, eksperymentuj i korzystaj z Internetu, aby dowiedzieć się więcej.

Match Opcje

Zmodyfikuj zachowanie tych funkcji, określając co najmniej jedną opcję, którą łączysz przy użyciu operatora łączenia ciągów (&).

Elementy typu wyliczeniowego dla opcji typu MatchOptions Opis Wpływ na wyrażenie regularne
MatchOptions.BeginsWith Dopasowanie wzorca musi uwzględniać początek tekstu. Dodaje znak ^ na początku wyrażenia regularnego.
MatchOptions.Complete Wartość domyślna dla IsMatch usługi Power Apps. Wzorzec pasuje do całego ciągu tekstu od początku do końca. Dodaje znak ^ na początku i znak $ na końcu wyrażenia regularnego.
MatchOptions.Zawiera Wartość domyślna dla Match elementów i MatchAlli IsMatch spoza usługi Power Apps. Wzorzec musi być zawarty w tekście, ale nie musi rozpoczynać ani kończyć wyrażenia. Nie modyfikuje wyrażenia regularnego.
MatchOptions.DotAll Zmienia zachowanie . operatora (kropka), aby dopasować wszystkie znaki, w tym znaki nowego wiersza. Niedostępne w usłudze Power Apps. Nie modyfikuje wyrażenia regularnego. Ta opcja jest odpowiednikiem standardowego modyfikatora "s" dla wyrażeń regularnych.
MatchOptions.EndsWith Dopasowanie wzorca musi uwzględniać początek ciągu tekstu. Dodaje znak $ na końcu wyrażenia regularnego.
MatchOptions.FreeSpacing Znaki odstępu, w tym nowe linie, są ignorowane w wyrażeniu regularnym. Komentarze końca wiersza rozpoczynające się od a # są ignorowane. Niedostępne w usłudze Power Apps. Zmienia tylko sposób składni wyrażenia regularnego. Ta opcja jest odpowiednikiem standardowego modyfikatora "x" dla wyrażeń regularnych.
MatchOptions.IgnoreCase Traktuje wielkie i małe litery jako identyczne. Domyślnie dopasowanie uwzględnia wielkość liter. Nie modyfikuje wyrażenia regularnego. Ta opcja jest odpowiednikiem standardowego modyfikatora "i" w wyrażeniach regularnych.
MatchOptions.Multiline Zmienia zachowanie ^ elementu i $ dopasuj je na końcu linii. Nie modyfikuje wyrażenia regularnego. Ta opcja jest odpowiednikiem standardowego modyfikatora "m" w wyrażeniach regularnych.
MatchOptions.NumberedSubMatches Preferowane są nazwane przechwytywania, ponieważ są łatwiejsze do zrozumienia i utrzymania. Wydajność zwiększa się również, gdy niepotrzebne przechwytywanie nie są zachowywane. Jednak w przypadku starszych wyrażeń regularnych każdy zestaw nawiasów jest traktowany jako przechwycenie numerowane zawarte w tabeli SubMatches w wyniku. Ustawienie domyślne w usłudze Power Apps. Nie modyfikuje wyrażenia regularnego. Nazwane przechwytywanie są wyłączone, a \1 odwołania do wstecznych stylów są włączone.

Użycie MatchAll jest takie samo jak użycie standardowego modyfikatora "g" dla wyrażeń regularnych.

Składnia

IsMatch( Tekst, Wzorzec [, Opcje ] )

  • Tekst – wymagane. Testowany ciąg tekstowy.
  • Wzór – wymagane. Testowany wzorzec w postaci ciągu tekstowego. Połącz wstępnie zdefiniowane wzorce, które wyliczenie Match definiuje lub udostępnia wyrażenie regularne. Wzorzec musi być stałą formułą bez zmiennych, źródeł danych lub innych odwołań dynamicznych, które zmieniają się w miarę uruchamiania aplikacji. Należy pamiętać, że formuła musi być wyrażona jako "Match. Wstępnie zdefiniowanypattern", np. Match. E-mail
  • Opcje – Opcjonalnie. Ciąg tekstowy w połączeniu z wartościami wyliczeniowymi wyrażenia MatchOptions. Domyślnie używane jest wyrażenie MatchOptions.Complete. Opcje muszą być stałą formułą bez zmiennych, źródeł danych lub innych odwołań dynamicznych, które zmieniają się w miarę uruchamiania aplikacji.

Match( Tekst, Wzorzec [, Opcje ] )

  • Tekst – wymagane. Dopasowany ciąg tekstowy.
  • Wzór – wymagane. Dopasowany wzorzec w postaci ciągu tekstowego. Połącz wstępnie zdefiniowane wzorce zdefiniowane przez Match wyliczenie lub podaj wyrażenie regularne. Wzorzec musi być stałą formułą bez żadnych zmiennych, źródeł danych ani innych odwołań dynamicznych, które zmieniają się wraz z działaniem aplikacji.
  • Opcje – Opcjonalnie. Ciąg tekstowy w połączeniu z wartościami wyliczeniowymi wyrażenia MatchOptions. Domyślnie używane jest wyrażenie MatchOptions.Contains. Opcje muszą być stałą formułą bez żadnych zmiennych, źródeł danych lub innych odwołań dynamicznych, które zmieniają się w miarę uruchamiania aplikacji.

MatchAll( Tekst, Wzorzec [, Opcje ] )

  • Tekst – wymagane. Dopasowany ciąg tekstowy.
  • Wzór – wymagane. Dopasowany wzorzec w postaci ciągu tekstowego. Połącz wstępnie zdefiniowane wzorce, które wyliczenie Match definiuje lub udostępnia wyrażenie regularne. Wzorzec musi być stałą formułą bez zmiennych, źródeł danych lub innych odwołań dynamicznych, które zmieniają się w miarę uruchamiania aplikacji.
  • Opcje – Opcjonalnie. Ciąg tekstowy w połączeniu z wartościami wyliczeniowymi wyrażenia MatchOptions. Domyślnie używane jest wyrażenie MatchOptions.Contains. Opcje muszą być stałą formułą bez zmiennych, źródeł danych lub innych odwołań dynamicznych, które zmieniają się w miarę uruchamiania aplikacji.

IsMatch Przykłady

Znaki zwykłe

Załóżmy, że aplikacja ma kontrolkę Wprowadzanie tekstu o nazwie TextInput1. Użytkownicy wprowadzają wartości do tej kontrolki, aby przechowywać je w bazie danych.

Użytkownicy wpiszą ciąg Hello world w polu TextInput1.

Wzór Opis Wynik
IsMatch( TextInput1.Text, "Hello world" ) Sprawdza, czy dane wejściowe podane przez użytkownika dokładnie odpowiadają ciągowi „Hello world”. prawdziwy
IsMatch( TextInput1.Text, "Good bye" ) Sprawdza, czy dane wejściowe podane przez użytkownika dokładnie odpowiadają ciągowi „Good bye”. fałszywy
IsMatch( TextInput1.Text, "hello", Contains ) Sprawdza, czy dane wejściowe podane przez użytkownika zawierają wyraz „hello” (wielkość liter jest rozróżniana). fałszywy
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Sprawdza, czy dane wejściowe podane przez użytkownika zawierają wyraz „hello” (wielkość liter nie jest rozróżniana). prawdziwy

Wstępnie zdefiniowane wzorce

Wzór Opis Wynik
IsMatch( "123-45-7890", Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit ) Zastępuje numer ubezpieczenia społecznego w Stanach Zjednoczonych prawdziwy
IsMatch( "joan@contoso.com", Match.Email ) Zastępuje adres e-mail prawdziwy
IsMatch( "123.456", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) Zastępuje sekwencję cyfr, kropkę oraz zero lub dowolną liczbę cyfr. prawdziwy
IsMatch( "123", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) Zastępuje sekwencję cyfr, kropkę oraz zero lub dowolną liczbę cyfr. Kropka nie znajduje się w tekście do dopasowania, więc ten wzorzec nie jest dopasowany. fałszywy

Wyrażenia regularne

Wzór Opis Wynik
IsMatch( "986", "\d+" ) Zastępuje liczbę całkowitą większą od zera. prawdziwy
IsMatch( "1.02", "\d+(\.\d\d)?" ) Zastępuje dodatnią kwotę w walucie. Jeśli dane wejściowe zawierają separator dziesiętny, muszą po nim wystąpić 2 znaki numeryczne. Na przykład 3,00 jest zapisem prawidłowym, ale 3,1 jest zapisem błędnym. prawdziwy
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) Zastępuje dodatnią lub ujemną kwotę w walucie. Jeśli dane wejściowe zawierają separator dziesiętny, muszą po nim wystąpić 2 znaki numeryczne. prawdziwy
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Zastępuje numer ubezpieczenia społecznego w Stanach Zjednoczonych. Weryfikuje format, typ i długość podanego pola danych wejściowych. Ciąg do dopasowania musi wyglądać następująco: 3 znaki numeryczne, kreska, 2 znaki numeryczne, kreska i 4 znaki numeryczne. prawdziwy
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Przykład analogiczny do poprzedniego, ale jeden z łączników w danych wejściowych znajduje się w złym miejscu. fałszywy
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) Weryfikuje silne hasło, które musi zawierać osiem, dziewięć lub 10 znaków, co najmniej jedną cyfrę i co najmniej jeden znak alfabetyczny. Ciąg nie może zawierać znaków specjalnych. fałszywy

Matchprzykłady i MatchAll

Wzór Opis Wynik
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>") Rozpakowuje tylko część e-mail z informacjami kontaktowymi. {
e-mail: "bob.jones@contoso.com",
FullMatch: "<bob.jones@contoso.com>",
StartMatch: 11
}
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" Rozpakowuje tylko część e-mail z informacjami kontaktowymi. Nie można znaleźć adresu prawnego (brak znaku @), więc funkcja zwraca wartość blank. pusty
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) Funkcja Language wyodrębnia części: język, skrypt i region dla tagu języka, który zwraca funkcja Language. Te wyniki są odzwierciedlane w Stanach Zjednoczonych; więcej przykładów można znaleźć w dokumentacji dotyczącej funkcji Language. Operator (?: grupuje znaki bez tworzenia innego podrzędnego dopasowania). {
language: "en",
script: blank,
region: "USA",
FullMatch: "en-US",
StartMatch: 1
}
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) Wyodrębnia godziny, minuty i sekundy z wartości czasu trwania ISO 8601. Wyodrębnione numery nadal są w ciągu tekstowym użyj funkcji Value w celu przeprowadzenia operacji matematycznych w celu przekonwertowania jej na liczbę. {
godziny: "2",
minuty: "1",
s: "39",
FullMatch: "PT2H1M39S",
StartMatch: 1
}

Zagłębmy się bardziej w ten ostatni temat. Jeśli chcesz przekonwertować ten ciąg na wartość daty/godziny przy użyciu funkcji Time , musisz przekazać indywidualnie nazwane podmaty. Aby to zrobić, użyj funkcji With działającej na rekordzie, który Match zwraca:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
   Time( Value( hours ), Value( minutes ), Value( seconds ) )
)

Aby zapoznać się z tymi przykładami, należy dodać kontrolkę Przycisk, ustawić jego właściwość OnSelect na tę formułę, a następnie wybrać przycisk:

Set( pangram, "The quick brown fox jumps over the lazy dog." )
Wzór Opis Wynik
Match( pangram, "THE", IgnoreCase ) Znajdź wszystkie dopasowania elementu "THE" w ciągu tekstowym, który zawiera zmienna pangram. Ciąg zawiera dwa dopasowania, ale zwracany jest tylko pierwszy, ponieważ używasz Match elementu , a nie MatchAll. {
FullMatch: "The",
StartMatch: 32
}
MatchAll( pangram, "the" ) Znajdź wszystkie dopasowania elementu "the" w ciągu tekstowym, który zawiera zmienna pangram. W teście jest rozróżniana wielkość liter, więc znalezione zostanie tylko drugie wystąpienie elementu "the". MatchAll dla pangramu.
MatchAll( pangram, "the", IgnoreCase ) Znajdź wszystkie dopasowania elementu "the" w ciągu tekstowym, który zawiera zmienna pangram. W tym przypadku podczas testu nie jest rozróżniana wielkość liter, więc można znaleźć zarówno wystąpienia danego wyrazu. MatchAll z funkcją IgnoreCase.
MatchAll( pangram, "\b\wo\w\b" ) Program znajduje wszystkie trzyliterowe wyrazy ze znakiem "o" w środku. "brązowy" jest wykluczony, ponieważ nie jest to trzyliterowy wyraz i dlatego nie pasuje do "\b" (granica słowa). MatchAll dla pangramu z b, wo, w i b.
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) Odpowiada wszystkim znakom między "fox" i "dog". {
pomiędzy: "jumps over the lazy",
FullMatch: "lis skacze nad leniwym psem",
StartMatch: 17
}

Aby wyświetlić wyniki w MatchAll galerii:

  1. Na pustym ekranie wstaw pustą pionową kontrolkę galerii .

  2. Ustaw właściwość Items galerii na MatchAll( pangram, "\w+" ) lub MatchAll( pangram, MultipleLetters ).

    Galeria elementów.

  3. Wybierz "Dodaj element z karty Wstaw" w środku kontrolki galerii, aby wybrać formularz galerii.

  4. Dodaj kontrolkę Label do szablonu galerii.

  5. Ustaw właściwość Text kontrolki etykiety na ThisItem.FullMatch.

    W galerii jest wypełniany każdy wyraz w tekście przykładowym. Aby wyświetlić wszystkie wyrazy na jednym ekranie, zmień rozmiar szablonu galerii i kontrolki etykiety.

    Właściwość Text.