Zdieľať cez


IsMatch, Matcha MatchAll funkcie

Vzťahuje sa na: Aplikácie plátna Aplikácie Copilot Studio Modelom riadené aplikácie Power Platform CLI Dataverse funkcie Power Pages

Testuje zhodu alebo extrahuje časti textového reťazca na základe vzoru.

Popis

Funkcia IsMatch testuje, či sa textový reťazec zhoduje so vzorom, ktorý sa môže skladať z obyčajných znakov, preddefinovaných vzorov alebo regulárneho výrazu. Funkcie a MatchAll vrátia Match zhodné položky vrátane medzisúčtov.

Používa IsMatch sa na overenie toho, čo používateľ zadajte do ovládacieho prvku Vstup textu . Skontrolujte napríklad, či používateľ zadal platnú e-mailovú adresu pred uložením výsledku do vášho zdroja údajov. Ak položka nespĺňa vaše kritériá, pridajte ďalšie ovládacie prvky, ktoré používateľa vyzvú, aby položku opravila.

Pomocou extrahujte Match prvý textový reťazec, ktorý sa zhoduje so vzorom, a MatchAll extrahujte všetky zhodné textové reťazce. Extrahujte podmnožby na analyzovanie zložitých reťazcov.

Match vráti záznam informácií pre prvú nájdenú zhodu a MatchAll vráti tabuľku záznamov pre každú nájdenú zhodu. Záznam alebo záznamy obsahujú:

Column Type Popis
pomenovaná vedľajšia zhoda alebo vedľajšie zhody SMS správa Každý pomenovaný podmnožka má svoj vlastný stĺpec. Vytvorenie pomenovaného podsúčtu pomocou funkcie (?<meno>... ) v regulárneho výrazu. Ak má pomenovaná podmnožka rovnaký názov ako jeden z preddefinovaných stĺpcov, podmnožstvo má prednosť a vygeneruje sa upozornenie. Toto upozornenie premenujte, aby ste sa vyhli tomuto upozorneniu.
FullMatch SMS správa Celý textový reťazec, ktorý sa zhodoval.
StartMatch Číslo Počiatočná pozícia zhody v rámci vstupného textového reťazca. Prvý znak reťazca vráti 1.
SubMatches, iba ak sa používa MatchOptions.NumberedSubMatches . Textová tabuľka s jedným stĺpcom (stĺpec Hodnota) Tabuľka číslovaných podmnožín v poradí, v ktorom sa zobrazujú v regulárnom výraze. Vo všeobecnosti platí, že pomenované podmnožce sa odporúčajú na prácu s a . Na prácu s jednotlivou podsúladou použite funkciu ForAll alebo index . Ak v regulárnom výraze nie sú definované žiadne podmnožnosti, táto tabuľka bude prítomná, ale prázdna.

Tieto funkcie podporujú MatchOptions. Štandardne:

  • Tieto funkcie vykonávajú porovnávanie malých a veľkých písmen. Na vykonanie zhôd bez rozlišovania malých a veľkých písmen použite MatchOptions.IgnoreCase .
  • IsMatch zodpovedá celému textovému reťazcu (Complete MatchOption), kým Match a MatchAll vyhľadá zhodu kdekoľvek v textovom reťazci (Contains MatchOption). Použite nastavenia Complete, Contains, BeginsWith alebo EndsWith podľa svojich potrieb.

IsMatch Vráti hodnotu true , ak sa textový reťazec zhoduje so vzorom alebo false , ak sa tak nestane. Match Vráti prázdnu hodnotu , ak sa nenájde zhoda, ktorú je možné testovať s funkciou IsBlank . MatchAll vráti prázdnu tabuľku, ak sa nenájde zhoda, ktorú je možné testovať s funkciou IsEmpty .

Ak používate MatchAll funkciu na rozdelenie textového reťazca, zvážte použitie funkcie Split , ktorá je jednoduchšia a rýchlejšia.

Vzory

Základom používania týchto funkcií je popísanie vzoru, s ktorým sa má reťazec zhodovať. Vzor v textovom reťazci sa popisuje ako kombinácia:

  • obyčajných znakov, napríklad „abc“ alebo „123“,
  • preddefinovaných vzorov, napríklad Letter (písmeno), MultipleDigits (viacero číslic) alebo Email, Match(Tieto vzory sú definované v enume.)
  • regulárnych výrazov, napríklad „\d+\s+\d+“ alebo „[a-z]+“.

Tieto prvky môžete kombinovať pomocou operátora string-concatenation &. Napríklad "abc" & Číslica & "\s+" je platný vzor, ​​ktorý sa zhoduje so znakmi "a", "b" a "c", za ktorými nasleduje číslica od 0 do 9, za ktorou nasleduje aspoň jeden znak medzery.

Bežné znaky

Najjednoduchší vzor je postupnosť bežných znakov, ktoré sa presne zhodujú.

Napríklad pri použití s funkciou IsMatch sa reťazec "Hello" presne zhoduje so vzorom "Ahoj" . O nič viac a o nič menej. Reťazec "hello!" sa nezhoduje so vzorom z dôvodu výkričníka na konci a pretože písmeno "h" nastane nesprávne. (Pozrite si Match možnosti spôsobov, ako toto správanie upraviť.)

V jazyku vzoru sú znaky . ? * + ( ) [ ] ^ $ | \ vyhradené pre špeciálne účely. Ak chcete použiť tieto znaky, buď pred znak zadajte (opačná \ lomka) na označenie, že sa má znak brať doslova, alebo použite niektorý z preddefinovaných vzorov. Reťazec môžete napríklad priradiť "Hello?" pomocou vzoru "Hello\\?" so spätnou lomkou pred otáznikom.

Preddefinované vzory

Preddefinované vzory poskytujú jednoduchý spôsob, ako nájsť zhodu buď s jedným zo skupiny znakov alebo s postupnosťou viacerých znakov. Pomocou operátora pre zreťazenie reťazcov & môžete svoje vlastné textové reťazce skombinovať s členmi enumu Match :

Match enum Popis Regulárny výraz
Akékoľvek Skontroluje zhodu s ľubovoľným znakom. .
Čiarka Zhoduje sa s čiarkou ,. ,
Číslica Skontroluje zhodu s jednou číslicou (0 až 9). \d
Email Skontroluje zhodu s e-mailovou adresou, ktorá obsahuje symbol „zavináča“ („@“) a názov domény obsahujúci bodku („.“) Zobraziť poznámku
Spojovník Skontroluje zhodu so spojovníkom. - Zobraziť poznámku
LeftParen Zodpovedá ľavej zátvorke (. \(
List Skontroluje zhodu s písmenom. \p{L}
Viacnásobné číslice Skontroluje zhodu s viacerými číslicami. \d+
Viac písmen Skontroluje zhodu s viacerými písmenami. \p{L}+
MultipleNonSpaces Skontroluje zhodu s jedným alebo viacerými znakmi, ktoré nepridávajú prázdny znak (nemedzera, tabulátor, nový riadok). \S+
MultipleSpaces Skontroluje zhodu s jedným alebo viacerými znakmi, ktoré pridávajú prázdny znak (medzera, tabulátor alebo nový riadok). \s+
NonSpace Skontroluje zhodu s jedným znakom, ktorý nepridáva prázdny znak. \S
Voliteľné číslice Skontroluje zhodu so žiadnou, jednou alebo viacerými číslicami. \d*
Voliteľné písmená Skontroluje zhodu so žiadnym, jedným alebo viacerými písmenami. \p{L}*
VoliteľnéNonSpaces Skontroluje zhodu s žiadnym, jedným alebo viacerými znakmi, ktoré nepridávajú prázdny znak. \S*
Voliteľné priestory Skontroluje zhodu so žiadnym, jedným alebo viacerými znakmi, ktoré pridávajú prázdny znak. \s*
Obdobie Skontroluje zhodu s bodkou alebo bodkou .. \.
RightParen Zodpovedá pravej zátvorke ). \)
Priestor Skontroluje zhodu so znakom, ktorý pridáva prázdny znak. \s
Tab Skontroluje zhodu so znakom tabulátora. \t

Napríklad vzor "A" & MultipleDigits zodpovedá písmenu "A", za ktorým nasleduje jedna alebo viacero číslic.

Služba Power Apps používa inú definíciu pre Match. E-mail a Match. Spojovník. Vyhodnotíte a Text( Match.Email ) zobrazí sa regulárny výraz, ktorý používa váš hostiteľ.

Regulárne výrazy

Vzor, ktorý tieto funkcie používajú, sa nazýva regulárny výraz. Konkrétny dialekt regulárnych výrazov v službe Power Fx je podrobne opísaný v téme Regulárne výrazy.

Regulárne výrazy sú účinné a slúžia na najrôznejšie účely. Môžu tiež vyzerať ako náhodná postupnosť interpunkačných znamienok. Tento článok nepopisuje všetky aspekty regulárnych výrazov, ale online je k dispozícii množstvo informácií, návodov a nástrojov.

Regulárne výrazy majú dlhú históriu a sú dostupné v mnohých programovacích jazykoch. Každý programovací jazyk má svoj vlastný dialekt regulárnych výrazov a existuje len málo štandardov. Snažíme sa zabezpečiť, aby rovnaký regulárny výraz dával rovnaký výsledok vo všetkých implementáciách Power Fx. Kompatibilita nie je ľahko dosiahnuteľná, pretože **funguje na JavaScripte** a .NET, ktoré sa medzi sebou výrazne líšia. Power Fx Regulárne výrazy služby Power Fx sú obmedzené na podmnožinu funkcií, ktoré sú široko podporované v celom odvetví, aby sa prispôsobili spusteniu na rôznych platformách.

V dôsledku toho môžu byť niektoré regulárne výrazy, ktoré môžu fungovať v iných prostrediach, zablokované alebo vyžadovať úpravy v Power Fx. Chyby času tvorby sa hlásia, keď sa vyskytnú nepodporované funkcie. Toto je jeden z dôvodov, prečo musí byť regulárny výraz a možnosti časová konštanta a nie dynamická (napríklad uvedená v premennej).

Poznámka

Power Apps používa staršiu verziu regulárnych výrazov služby Power Fx, ktorá má menej obmedzení, ale aj menej funkcií. Funkcie MatchOptions.DotAll a MatchOptions.FreeSpacing nie sú k dispozícii a definície typu Match. E-mail a Match. Spojovníky sa líšia. Náhradné páry Unicode sa nepovažujú za jeden znak. Predvolená hodnota je MatchOptions.NumberedSubMatches . Verzia tu popísaných regulárnych výrazov bude čoskoro dostupná v službe Power Apps pod prepínačom kompatibility Power Fx V1.0.

Tu sú niektoré základné prvky regulárnych výrazov, ktoré pri analýze čísla vytvárajú zložitosť.

Funkcia Príklad Popis
Trieda preddefinovaných znakov \d Tento regulárny výraz sa zhoduje s jedným číslom, ako 1napríklad . Trieda znaku sa zhoduje s množinou znakov a \d zodpovedá štandardným čísliciam 09 a čísliciam definovaným v kategórii znakov Unicode "Nd". Pre písmená a čísla existujú triedy znakov s \w medzerami a vrátane newlines s \s. K dispozícii sú aj inverzné triedy znakov, ktoré používajú veľké písmená: \D zodpovedá všetkému, čo \d nie.
Jeden alebo viac \d+ Tento regulárny výraz sa zhoduje s jedným alebo viacerými číslami, ako 123napríklad . Výraz + potom, čo prvok hovorí jeden alebo viaceré z posledného prvku.
Nula alebo Jeden \+?\d Tento regulárny výraz sa zhoduje s voliteľným + znamienkom, za ktorým nasleduje jedno alebo viacero čísel, ako +123 napríklad len 123. Keď ? prvok povie, že "táto možnosť je voliteľná, môže sa vyskytnúť nulakrát alebo raz". Vlastnosť + má pred sebou opačnú lomku, aby sa odlíšila od použitia znaku "one alebo viac" ako literálu.
Zoskupenie a striedanie (-|\+)?\d+ Tento regulárny výraz sa voliteľne zhoduje s znamienkom +-alebo , voliteľne a potom s radom čísel, ako -123sú napríklad , +123a 123. Predstavujeme vám dva pojmy, ktoré sa často používajú spoločne. Najprv je k dispozícii zátvorka, ktorá zoskupuje ako množinu prvkov, aby ? s ktorými sa mali jednať. Po druhé, máme | to, čo hovorí : "buď to alebo to".
Trieda vlastných znakov (-|\+)?\d+[eE][\-\+]?\d+ Tento regulárny výraz pridá exponent do kombinácie s dvomi triedami znakov, zodpovedajúcich +123e-12. Trieda znakov je ako | striedanie, ktoré poskytuje zhodu jednej z týchto vecí v kompaktnejšej forme. Rovnako ako v prípade +, - má špeciálny význam v triedach znakov regulárneho výrazu, takže sa nám musí vyhnúť.
Nula alebo Viac (-|\+)?\d+\.?\d*[eE][\-\+]?\d+ Tento regulárny výraz pripočíta desatinné číslo za celočíselnú časť čísla, napríklad -123.456e-89 alebo -123.E+32. Hodnota \d za desatinnou bodkou * má kvantifikátor, ktorý pre desatinné číslice za desatinnou čiarkou uvádza "nula alebo viackrát". .
Zaznamenávanie skupín (?&lt;number&gt;(-|\+)?\d+\.?\d*)[eE](?&lt;exponent&gt;[\-\+]?\d+) Nakoniec pridáme skupiny zaznamenávania pre number a exponent. Nielenže sa regulárny výraz zhoduje s celým reťazcom, ale môže tiež extrahovať časti na použitie vo vzorcoch, v tomto prípade časť pred e (alebo E) a časť po nej.

Tieto príklady poskytujú len malú chuť toho, čo môžu regulárne výrazy robiť. Bežne sa používajú na overenie identifikačných čísel, e-mailových adries, telefónnych čísel, dátumov a časov a na extrahovanie informácií zo všetkých druhov textových súborov. Pokračujte v čítaní regulárnych výrazov v službe Power Fx, experimentujte a naučte sa viac na webe.

Match Možnosti

Upravte správanie týchto funkcií zadaním jednej alebo viacerých možností, ktoré skombinujete pomocou operátora pre zreťazenie reťazcov (&).

Zoznam možností zhody Popis Vplyv na regulárny výraz
MatchOptions.BeginsWith Vzor sa musí zhodovať od začiatku textu. Pridá ^ na začiatok regulárneho výrazu.
MatchOptions.Complete Predvolená hodnota pre v IsMatch službe Power Apps. Vzor sa zhoduje s celým textovým reťazcom od začiatku do konca. Pridá ^ na začiatok a $ na koniec regulárneho výrazu.
MatchOptions.Contains Predvolené pre Match a MatchAll, a IsMatch mimo služby Power Apps. Vzor sa musí nachádzať niekde v texte, ale nemusí byť na začiatku ani na konci. Nezmení regulárny výraz.
MatchOptions.DotAll Zmení správanie operátora . (bodka) tak, aby zodpovedal všetkým znakom vrátane znakov nového riadka. Nie je k dispozícii v službe Power Apps. Nezmení regulárny výraz. Táto možnosť je ekvivalentom štandardného modifikátora "s" pre regulárne výrazy.
MatchOptions.EndsWith Vzor sa musí zhodovať s koncom reťazca textu. Pridá $ na koniec regulárneho výrazu.
MatchOptions.FreeSpacing Znaky prázdneho znaku vrátane newlines sa v regulárnych výrazoch ignorujú. Komentáre na konci riadka, ktoré začínajú znakom, sa # ignorujú. Nie je k dispozícii v službe Power Apps. Zmení sa iba syntax regulárnych výrazov. Táto možnosť je ekvivalentom štandardného modifikátora "x" pre regulárne výrazy.
MatchOptions.IgnoreCase Zaobchádza s veľkými a malými písmenami rovnako. V predvolenom nastavení sa veľkosť písmen rozlišuje. Nezmení regulárny výraz. Táto možnosť je ekvivalentom štandardného modifikátora „i“ pre regulárne výrazy.
MatchOptions.Multiline Zmení správanie ^ a $ zhodu na konci vnorenia. Nezmení regulárny výraz. Táto možnosť je ekvivalentom štandardného modifikátora „m“ pre regulárne výrazy.
MatchOptions.NumberedSubMatches Pomenované záznamy sa uprednostňujú, pretože sú ľahšie pochopiteľné a spravované. Výkon sa tiež zlepšuje, pretože nepotrepné zachytenia sa nezachovávajú. V prípade starších regulárnych výrazov však každú množinu zátvoriek považuje za očíslovaný záznam, ktorý je súčasťou tabuľky SubMatches vo výsledku. Predvolené v službe Power Apps. Nezmení regulárny výraz. Pomenované záznamy sú zakázané a \1 odkazy na štýl späť sú povolené.

Použitie MatchAll je rovnaké ako použitie štandardného modifikátora "g" pre regulárne výrazy.

Syntax

IsMatch( Text, Vzor [, Možnosti ] )

  • Text – povinné. Textový reťazec, ktorý sa má otestovať.
  • Vzor – povinné. Vzor na otestovanie, napríklad textový reťazec. Zreťazte preddefinované vzory, ktoré enuum Match definuje, alebo zadajte regulárny výraz. Vzorom musí byť konštantný vzorec bez premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie. Všimnite si, že vzorec musí byť vyjadrený ako .Match preddefinovaný parameterPattern", Matchnapríklad . E-mail
  • Možnosti – voliteľné. Textový reťazec s kombináciou hodnôt zo zoznamu MatchOptions. V predvolenom nastavení sa používa MatchOptions.Complete. Možnosti musia byť konštantným vzorcom bez premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie.

Match( Text, Vzor [, Možnosti ] )

  • Text – povinné. Textový reťazec, ktorý sa má zhodovať.
  • Vzor – povinné. Vzor na otestovanie zhody, napríklad textový reťazec. Zreťazte preddefinované vzory, ktoré Match definuje enum, alebo zadajte regulárny výraz. Vzor musí byť konštantný vzorec bez akýchkoľvek premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie.
  • Možnosti – voliteľné. Textový reťazec s kombináciou hodnôt zo zoznamu MatchOptions. V predvolenom nastavení sa používa MatchOptions.Contains. Možnosti musia byť konštantným vzorcom bez premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie.

MatchAll( Text, Vzor [, Možnosti ] )

  • Text – povinné. Textový reťazec, ktorý sa má zhodovať.
  • Vzor – povinné. Vzor na otestovanie zhody, napríklad textový reťazec. Zreťazte preddefinované vzory, ktoré enuum Match definuje, alebo zadajte regulárny výraz. Vzorom musí byť konštantný vzorec bez premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie.
  • Možnosti – voliteľné. Textový reťazec s kombináciou hodnôt zo zoznamu MatchOptions. V predvolenom nastavení sa používa MatchOptions.Contains. Možnosti musia byť konštantným vzorcom bez premenných, zdrojov údajov alebo iných dynamických odkazov, ktoré sa menia pri spustení aplikácie.

IsMatch Príklady

Bežné znaky

Predstavte si, že vaša aplikácia má ovládací prvok Vstup textu s názvom TextInput1. Používatelia zadávajú do tohto ovládacieho prvku hodnoty, ktoré ich budú ukladať do databázy.

Používatelia zadajte Hello world do textInput1.

Vzorec Popis Výsledok
IsMatch( TextInput1.Text, "Hello world" ) Skontroluje, či sa zadanie používateľa presne zhoduje s textom „Hello world“. pravda
IsMatch( TextInput1.Text, "Good bye" ) Skontroluje, či sa zadanie používateľa presne zhoduje s textom „Good bye“. falošné
IsMatch( TextInput1.Text, "hello", Contains ) Skontroluje, či zadanie používateľa obsahuje slovo „hello“ (s rozlíšením veľkosti písmen). falošné
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Skontroluje, či zadanie používateľa obsahuje slovo „hello“ (bez rozlíšenia veľkosti písmen). pravda

Preddefinované vzory

Vzorec Popis Výsledok
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 ) Zodpovedá číslu sociálneho poistenia v USA pravda
IsMatch( "joan@contoso.com", Match.Email ) Zodpovedá e-mailovej adrese pravda
IsMatch( "123.456", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) Zodpovedá postupnosti číslic nasledovanej bodkou a potom žiadnou alebo viacerými číslicami. pravda
IsMatch( "123", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) Zodpovedá postupnosti číslic nasledovanej bodkou a potom žiadnou alebo viacerými číslicami. Bodka sa v texte na určenie zhody nenachádza, preto sa tento vzor nezhoduje. falošné

Regulárne výrazy

Vzorec Popis Výsledok
IsMatch( "986", "\d+" ) Zodpovedá celému číslu väčšiemu než nula. pravda
IsMatch( "1.02", "\d+(\.\d\d)?" ) Zodpovedá kladnej peňažnej čiastke. Ak zadanie obsahuje desatinnú bodku, musí obsahovať tiež 2 číselné znaky za desatinnou bodkou. Napríklad 3.00 je platné, ale 3.1 nie je. pravda
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) Zodpovedá kladnej alebo zápornej peňažnej čiastke. Ak zadanie obsahuje desatinnú bodku, musí obsahovať tiež 2 číselné znaky za desatinnou bodkou. pravda
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Zodpovedá číslu sociálneho poistenia v USA. Overí formát, typ a dĺžku zadaného poľa. Reťazec, ktorý sa má zhodovať, musí obsahovať tri číselné znaky, po ktorých nasleduje spojovník a potom dva číselné znaky, po ktorých nasleduje spojovník a ďalšie štyri číselné znaky. pravda
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Rovnaké ako predchádzajúci príklad, ale jeden zo spojovníkov nie je v zadaní na správnom mieste. falošné
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) Overí silné heslo, ktoré musí obsahovať osem, deväť alebo 10 znakov, aspoň jednu číslicu a aspoň jeden znak abecedy. Reťazec nemôže obsahovať špeciálne znaky. falošné

Match a MatchAll príklady

Vzorec Popis Výsledok
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>") Extrahuje iba e-mailovú časť kontaktných informácií. {
email: „bob.jones@contoso.com“,
FullMatch: „<bob.jones@contoso.com>“,
StartMatch: 11
}
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" Extrahuje iba e-mailovú časť kontaktných informácií. Nenašla sa žiadna platná adresa (neexistuje znak @), takže funkcia vráti blank hodnotu. prázdna
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) Extrahuje časti jazyk, skript a oblasť značky jazyka, ktoré vracia funkcia Language. Tieto výsledky odrážajú USA; pozri dokumentáciu k funkcii Language pre viac príkladov. Operátor (?: zoskupuje znaky bez vytvorenia ďalšej čiastočnej zhody. {
jazyk: "en",
script: blank,
region: "US",
FullMatch: "en-US",
StartMatch: 1
}
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) Extrahuje hodiny, minúty a sekundy z hodnoty trvania ISO 8601. Extrahované čísla sú stále v textovom reťazci; použite funkciu Value, ktorá ho prevedie na číslo predtým, ako sa na ňom vykonajú matematické operácie. {
hours: "2",
min: "1",
seconds: "39",
FullMatch: "PT2H1M39S",
StartMatch: 1
}

Poďme sa podrobne pozrieť na posledný príklad. Ak chcete skonvertovať tento reťazec na hodnotu dátumu a času pomocou funkcie Time , musíte odovzdať pomenované podmnožby jednotlivo. Ak to chcete urobiť, použite funkciu With , ktorá funguje v zázname, ktorý Match vráti hodnotu:

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

Pre tieto príklady pridajte ovládací prvok Tlačidlo, nastavte jeho vlastnosť OnSelect podľa tohto vzorca a potom vyberte tlačidlo:

Set( pangram, "The quick brown fox jumps over the lazy dog." )
Vzorec Popis Výsledok
Match( pangram, "THE", IgnoreCase ) Nájsť všetky zhody „THE“ v textovom reťazci, ktorý obsahuje premenná pangram. Reťazec obsahuje dve zhody, ale vráti sa len prvá z nich, pretože používate Match a nie MatchAll. {
FullMatch: "The",
StartMatch: 32
}
MatchAll( pangram, "the" ) Nájsť všetky zhody „the“ v textovom reťazci, ktorý obsahuje premenná pangram. Pri teste sa rozlišujú malé a veľké písmená, takže sa nájde iba druhý prípad „the“. MatchAll pre pangram.
MatchAll( pangram, "the", IgnoreCase ) Nájsť všetky zhody „the“ v textovom reťazci, ktorý obsahuje premenná pangram. V tomto prípade sa pri teste nerozlišujú malé a veľké písmená, takže sa nájdu obidva výskyty slova. MatchAll s ignorecase.
MatchAll( pangram, "\b\wo\w\b" ) Nájde všetky trojpísmenové slová s písmenom „o“ v strede. slovo "brown" je vylúčené, pretože nejde o trojpísmenové slovo, a preto sa nedokáže zhodovať s textom "\b" (slovo ohraničenie). MatchAll pre pangram s b, wo, w a b.
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) Zhodou budú všetky znaky medzi slovami „fox“ a „dog. {
medzi: "skoky cez lenivé",
FullMatch: "líška skočiť cez lenivý pes",
StartMatch: 17
}

Zobrazenie výsledkov MatchAll v galérii:

  1. Na prázdnu obrazovku vložte prázdny ovládací prvok zvislej galérie .

  2. Nastavte vlastnosť Items galérie na MatchAllhodnotu ( pangram, "\w+" ) alebo MatchAll( pangram, MultipleLetters ).

    Galéria položiek.

  3. Vyberte „Pridať položku z karty Vložiť“ v strede ovládacieho prvku galérie a vyberte šablónu galérie.

  4. Do šablóny galérie pridajte ovládací prvok Označenie.

  5. Nastavte vlastnosť Text označenia na ThisItem.FullMatch:

    Galéria je vyplnená každým slovom v našom príklade textu. Ak chcete zobraziť všetky slová na jednej obrazovke, zmeňte veľkosť šablóny galérie a ovládacieho prvku označenia.

    Vlastnosť textu.