Napomena
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Odnosi se na: Aplikacije
platna CLI aplikacije
Power Pages
Power Platform zasnovane na modelu
Testira za podudaranje ili izdvaja delove tekstualne niske na osnovu obrasca.
Opis
Funkcija IsMatch testira da li se tekstualna niska podudara sa obrascem koji može sadržavati obične znakove, unapred definisane obrasce ili regularni izraz. Funkcije Match i MatchAll vraćaju podudaranja, uključujući i podudaranja manjeg stepena.
Koristite IsMatch da biste proverili valjanost onoga što je korisnik uneo u kontroli Unos teksta. Na primer, možete da potvrdite da li je korisnik uneo važeću adresu e-pošte pre nego što se rezultat sačuva u vaš izvor podataka. Ako se stavka ne podudara sa vašim kriterijumima, dodajte druge kontrole koje će od korisnika zatražiti da ispravi stavku.
Koristite Match da biste izdvojili prvu tekstualnu nisku koja se podudara sa obrascem i MatchAll da biste izdvojili sve tekstualne niske koje se podudaraju. Možete i da izdvojite podudaranja manjeg stepena da biste raščlanili složene niske.
Meč vraća zapis informacija za prvi meč pronađen, i MatchAll vraća tabelu zapisa za svaki meč pronađen. Zapis ili zapisi sadrže:
Column | Tip | Opis |
---|---|---|
Imenovani podmeč ili podmečevi | Tekst | Svako imenovano podudaranje manjeg nivoa će imati svoju kolonu. Kreirajte imenovano podudaranje manjeg nivoa pomoću (?<naziv>...) u regularnom izrazu. Ako imenovano podudaranje manjeg nivoa ima isti naziv kao i jedna od unapred definisanih kolona (ispod), podudaranje manjeg nivoa ima prednost, a generiše se upozorenje. Da biste izbegli ovo upozorenje, preimenujte podudaranje manjeg nivoa. |
Kompletne utakmice | Tekst | Cela tekstualna niska koja je bila podudarna. |
Početak utakmice | Broj | Početna pozicija podudaranja u ulaznoj tekstualnoj niski. Prvi znak niske vraća 1. |
Podmečevi | Tabela sa jednom kolonom teksta (kolona Vrednost) | Tabela imenovanih i neimenovanih podudaranja manjeg nivoa u redosledu u kojem se pojavljuju u regularnom izrazu. Uopšte, sa imenovanim podudaranjima nižeg nivoa je lakše raditi i preporučujemo da ih koristite. Koristite funkciju ForAll ili funkcije Last( FirstN( ... ) ) za rad sa pojedinačnim podudaranjem manjeg nivoa. Ako u regularnom izrazu nisu definisana podudaranja manjeg nivoa, ova tabela će biti prisutna, ali prazna. |
Ove funkcije podržavaju MatchOptions. Podrazumevano:
- Ove funkcije izvode podudaranje koje razlikuje velika i mala slova. Koristite MatchOptions.IgnoreCase da biste izvršili podudaranja bez razlikovanja velikih i malih slova.
- IsMatch odgovara čitavom tekstualnom nizu (Complete MatchOption), dok Match i MatchAll traže podudaranje bilo gde u tekstualnom nizu (sadrži MatchOption). Koristite Complete, Contains, BeginsWith ili EndsWith, kako odgovara vašem scenariju.
IsMatch vraća true ako se tekstualni string poklapa sa modelom ili laž ako se ne poklapa. Podudaranje vraća prazno ako nijedno poudaranje nije pronađeno koje je moguće testirati pomoću funkcije IsBlank. MatchAll vraća praznu tabelu ako se ne nađe podudaranje koje se može testirati sa funkcijom IsEmpty .
Ako koristite MatchAll da biste podelili tekstualnu nisku, razmislite o korišćenju funkcije Split koja je jednostavnija za upotrebu i brža.
Obrasci
Ključ za korišćenje ovih funkcija je u opisu obrasca koji treba da se podudara. Opisujete obrazac u tekstualnoj niski kao kombinaciju:
- Običnih znakova, kao što su „abc“ ili „123“.
- Unapred definisani obrasci, kao što su Letter, MultipleDigits ili Email. (Numerička Match definiše ove obrasce.)
- Kodovi regularnog izraza, kao što su "\d+\s+\d+" ili „[a-z]+“.
Kombinujte ove elemente pomoću operatora string-concatenation &. Na primer, "abc" & Digit & "\s +" je važeći obrazac koji odgovara znakovima "a", "b" i "c", nakon čega sledi cifra od 0 do 9, a zatim najmanje jedan znak razmaka.
Obični znakovi
Najjednostavniji obrazac je niz običnih znakova koji se tačno podudaraju.
Na primer, kada se koristi sa funkcijom IsMatch, niska "Zdravo" se tačno podudara sa obrascem "Zdravo". Ni više ni manje. Niska "zdravo!" ne odgovara obrascu zbog uzvičnika na kraju i zato što je veličina slova pogrešna na slovu „z“. (Pogledajte MatchOptions za načine izmene ovog ponašanja.)
U jeziku obrasca određeni znakovi su rezervisani za posebne namene. Da biste koristili ove znakove, stavite prefiks \ (leva kosa crta) ispred znaka da biste naznačili da znak treba shvatiti doslovno ili koristite jedan od unapred definisanih obrazaca opisanih kasnije u ovoj temi. U ovoj tabeli su navedeni posebni znakovi:
Poseban znak | Opis |
---|---|
. | tačka |
? | znak pitanja |
* | zvezdica |
+ | plus |
( ) | zagrade |
[ ] | uglaste zagrade |
{ } | vitičaste zagrade |
^ | karet |
$ | simbol za dolar |
| | vertikalna crta ili kanal |
\ | kosa crta ulevo |
Na primer, možete da se podudarate sa "Zdravo?" pomoću obrasca "Zdravo\?" sa levom kosom crtom pre znaka pitanja.
Unapred definisani obrasci
Unapred definisani obrasci omogućavaju jednostavan način za podudaranje bilo kog skupa znakova ili niza više znakova. Koristite operator string-concatenation & da kombinujete svoje tekstualne nizove sa članovima Matchnabrajanje :
Numerička vrednost Match | Opis | Regularni izraz |
---|---|---|
Bilo koji | Odgovara bilo kom znaku. | . |
Zarez | Podudara se sa zarezom. | , |
Cifra | Podudara se sa jednom cifrom (od „0“ do „9“). | \d |
E-pošta | Odgovara adresi e-pošte koja sadrži simbol „et“ („@“) i naziv domena koji sadrži tačku („.“) | .+\@.+\\.[^\\.]{2,} |
Crtica | Podudara se sa crticom. | \- |
Srpsko-hrvatski | Podudara se sa levom zagradom „(“. | \( |
Pismo | Podudara se sa slovom. | \p{L} |
MultipleDigits | Podudara se sa jednom ili više cifara. | \d+ |
MultipleLetters | Podudara se sa jednim ili više slova. | \p{L}+ |
MultipleNonSpaces | Podudara se sa jednim ili više znakova koji ne dodaju prazan prostor (a ne razmak, karticu ili novi red). | \S+ |
MultipleSpaces | Podudara se sa jednim ili više znakova koji dodaju prazan prostor (razmak, karticu ili novi red). | \s+ |
Pretraživanje | Podudara se sa jednim znakom koji ne dodaje prazan prostor. | \S |
OpcionoCifre | Podudara se sa nula, jednom ili više cifara. | \d* |
OpcionoPisma | Podudara se sa nula, jednim ili više slova. | \p{L}* |
OpcionoNonSpaces | Podudara se sa nula, jednim ili više znakova koji ne dodaju prazan prostor. | \S* |
OpcioniProstori | Podudara se sa nula, jednim ili više znakova koji dodaju prazan prostor. | \s* |
Menstruacija | Podudara se sa tačkom („.“). | \. |
OMILjENO | Podudara se sa desnom zagradom „)“. | \) |
Prostora | Odgovara znaku koji dodaje prazan prostor. | \s |
Kartici | Poklapa se sa znakom za tabulaciju. | \t |
Na primer, obrazac "A" & MultipleDigits će se podudarati sa slovom "A" nakon čega sledi jedna ili više cifara.
Regularni izrazi
Obrazac koji ove funkcije koriste je regularni izraz. Obični znakovi i unapred definisani obrasci koji su opisani ranije u ovoj temi pomažu u izgradnji regularnih izraza.
Redovni izrazi su veoma moćni, dostupni su u mnogim programskim jezicima, a koriste se u najrazličitije svrhe. Takođe mogu često izgledati kao slučajni niz interpunkcijskih znakova. Ovaj članak ne opisuje sve aspekte regularnih izraza, ali na internetu je dostupno mnoštvo informacija, vodiča i alatki.
Regularni izrazi dolaze u različitim dijalektima, a Power Apps koristi varijantu JavaScript dijalekta. Pogledajte sintaksa regularnog izraza za uvod u sintaksu. Podržana su podudaranja manjeg nivoa (koja se ponekad nazivaju i imenovane grupe za nalaženje):
- Imenovana podudaranja manjeg nivoa: (?<name> ...)
- Imenovane povratne reference: \k<name>
U numeričkoj tabeli Match ranije u ovoj temi, svaka numerička vrednost se pojavljuje u istom redu kao i odgovarajući regularni izraz.
Opcije podudaranja
Možete da izmenite ponašanje ovih funkcija tako što ćete odrediti jednu ili više opcija, koje možete kombinovati pomoću operatora string-concatenation (&).
Numerički MatchOptions | Opis | Uticaj na regularni izraz |
---|---|---|
MatchOptions.BeginsVith | Obrazac se mora podudarati od početka teksta. | Dodaje ^ na početak regularnog izraza. |
MatchOptions.Complete | Podrazumevano za IsMatch. Obrazac se mora podudarati sa celom niskom teksta, od početka do kraja. | Dodaje ^ na početak i $ na kraj regularnog izraza. |
MatchOptions.Contains | Podrazumevano za Match i MatchAll. Obrazac se mora pojaviti negde u tekstu, ali ne mora da ga započinje ili završava. | Ne menja regularni izraz. |
MatchOptions.EndsVith | Obrazac se mora podudarati sa krajem niske teksta. | Dodaje $ na kraj regularnog izraza. |
MatchOptions.IgnoreCase | Velika i mala slova tretira kao identična. Podrazumevano je podudaranje osetljivo na velika i mala slova. | Ne menja regularni izraz. Ova opcija je ekvivalent standardnom „i“ modifikatoru regularnih izraza. |
MatchOptions.Multiline | Podudara se u više linija. | Ne menja regularni izraz. Ova opcija je ekvivalent standardnom „m“ modifikatoru regularnih izraza. |
Korišćenje MatchAll je ekvivalentno korišćenju standardnog „g“ modifikatora za regularne izraze.
Sintaksa
IsMatch ( tekst, obrazac [ , opcije ] )
- Tekst – Obavezno. Niska teksta za testiranje.
- Obrazac – Obavezno. Obrazac za testiranje kao tekstualna niska. Povežite unapred definisane obrasce koji numerička vrednost Match definiše, ili obezbedite pravilan izraz. Obrazac mora biti konstantna formula bez ikakvih varijabli, izvora podataka ili drugih dinamičkih referenci koje se menjaju dok se aplikacija pokreće.
- Opcije – Opciono. Kombinacija tekstualne niske od numeričkih MatchOptions vrednosti. Podrazumevano, MatchOptions.Complete se koristi.
Podudaranje ( tekst, obrazac [ , opcije ] )
- Tekst – Obavezno. Niska teksta za podudaranje.
- Obrazac – Obavezno. Obrazac za podudaranje kao tekstualna niska. Povežite unapred definisane obrasce koji numerička vrednost Match definiše, ili obezbedite pravilan izraz. Obrazac mora biti konstantna formula bez ikakvih varijabli, izvora podataka ili drugih dinamičkih referenci koje se menjaju dok se aplikacija pokreće.
- Opcije – Opciono. Kombinacija tekstualne niske od numeričkih MatchOptions vrednosti. Podrazumevano, MatchOptions.Contains se koristi.
MatchAll( tekst, obrazac [ , opcije ] )
- Tekst – Obavezno. Niska teksta za podudaranje.
- Obrazac – Obavezno. Obrazac za podudaranje kao tekstualna niska. Povežite unapred definisane obrasce koji numerička vrednost Match definiše, ili obezbedite pravilan izraz. Obrazac mora biti konstantna formula bez ikakvih varijabli, izvora podataka ili drugih dinamičkih referenci koje se menjaju dok se aplikacija pokreće.
- Opcije – Opciono. Kombinacija tekstualne niske od numeričkih MatchOptions vrednosti. Podrazumevano, MatchOptions.Contains se koristi.
IsMatch primeri
Obični znakovi
Zamislite da vaša aplikacija sadrži kontrolu Unos teksta nazvanu TextInput1. Korisnik unosi vrednosti u ovu kontrolu koja se čuva u bazi podataka.
Korisnik unosi Zdravo svima u TextInput1.
Formula | Opis | Rezultat |
---|---|---|
IsMatch( TextInput1.Text, "Hello world" ) |
Testira da li se unos korisnika tačno podudara sa niskom „Zdravo svima“. | Istina |
IsMatch( TextInput1.Text, "Good bye" ) |
Testira da li se unos korisnika tačno podudara sa niskom „Doviđenja“. | lažan |
IsMatch( TextInput1.Text, "hello", Contains ) |
Ispituje da li korisnikov unos sadrži reč „zdravo“ (razlikujući velika i mala slova). | lažan |
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) |
Ispituje da li korisnikov unos sadrži reč „zdravo“ (ne razlikujući velika i mala slova). | Istina |
Unapred definisani obrasci
Formula | Opis | Rezultat |
---|---|---|
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit ) |
Podudara se sa brojem zdravstvenog osiguranja Sjedinjenih Država | Istina |
IsMatch( "joan@contoso.com", Email ) |
Podudara se sa e-adresom | Istina |
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) |
Podudara se sa nizom cifara, tačke, a zatim nule ili više cifara. | Istina |
IsMatch( "123", MultipleDigits & Period & OptionalDigits ) |
Podudara se sa nizom cifara, tačke, a zatim nule ili više cifara. U tekstu se ne pojavljuje tačka koja treba da se podudara, tako da se ovaj obrazac ne podudara. | lažan |
Regularni izrazi
Formula | Opis | Rezultat |
---|---|---|
IsMatch( "986", "\d+" ) |
Podudara se sa celim brojem većim od nule. | Istina |
IsMatch( "1.02", "\d+(\.\d\d)?" ) |
Podudara se sa pozitivnim iznosom valute. Ako ulaz sadrži decimalnu tačku, unos mora da sadrži i dva numerička znaka nakon decimalne tačke. Na primer, 3,00 je važeće, ali 3,1 nije. | Istina |
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) |
Podudara se sa pozitivnim ili negativnim iznosom valute. Ako ulaz sadrži decimalnu tačku, unos mora da sadrži i dva numerička znaka nakon decimalne tačke. | Istina |
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) |
Podudara se sa brojem zdravstvenog osiguranja Sjedinjenih Država. Proverava format, tip i dužinu navedenog polja za unos. Niska koja se podudara mora se sastojati od tri numerička znaka, nakon kojih sledi crtica, zatim dva numerička znaka, nakon kojih slijedi crtica, a zatim četiri numerička znaka. | Istina |
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) |
Isto kao u prethodnom primeru, ali jedna od crtica nije na mestu u polju. | lažan |
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) |
Potvrđuje valjanost jake lozinke koja mora sadržati osam, devet ili 10 znakova, pored najmanje jedne cifre i najmanje jednog abecednog znaka. Niska ne sme da sadrži specijalne znakove. | lažan |
Primeri Match i MatchAll
Formula | Opis | Rezultat |
---|---|---|
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>" |
Izdvaja samo deo e-pošte iz podataka o kontaktima. | { email: "bob.jones@contoso.com", FullMatch: "<bob.jones@contoso.com>", SubMatches: [ "bob.jones@contoso.com" ], StartMatch: 11 } |
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" |
Izdvaja samo deo e-pošte iz podataka o kontaktima. Nije pronađena nijedna zakonska adresa (nema znaka @), pa funkcija vraća prazno. | Prazno |
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) |
Izdvaja delove jezika, skripte i regiona oznake za jezik, koju funkcija Language vraća. Ovi rezultati odražavaju Sjedinjene Države; pogledajte dokumentaciju funkcije Language za više primera. Operator (?: grupiše znakove bez kreiranja drugog podudaranja manjeg nivoa. | { language: "en", script: prazno, region: "US", FullMatch: "en-US", SubMatches: [ "en", "", "US" ], StartMatch: 1 } |
Match( "PT2H1M39S", "PT(?:<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) |
Izvlači sate, minute i sekunde iz ISO 8601 vrednosti trajanja. Izdvojeni brojevi su još uvek u tekstualnoj niski; koristite funkciju Value da ih pretvorite u broj pre nego što se na njemu izvrše matematičke operacije. | { hours: "2", minutes: "1", seconds: "39", FullMatch: "PT2H1M39S", SubMatches:["2","1","39"], StartMatch: 1 } |
Hajde da dubinski pregledamo poslednji primer. Ako ste želeli da pretvorite ovu nisku u vrednost datum/vreme pomoću funkcije Time, morate da prosledite podudaranja manjeg nivoa pojedinačno. Da biste ovo uradili, možete da koristite funkciju With funkcija koja radi na zapisu koju vraća Match:
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
Za ove primere dodajte kontrolu Dugme, postavite njeno svojstvo OnSelect prema ovoj formuli, a zatim izaberite dugme:
Set( pangram, "The quick brown fox jumps over the lazy dog." )
Formula | Opis | Rezultat |
---|---|---|
Match( pangram, "THE", IgnoreCase ) |
Pronađite sva podudaranja od „THE“ u tekstualnoj niski koju sadrži promenljiva pangram. Niska sadrži dva podudaranja, ali samo prvo se vraća jer koristite Match, a ne MatchAll. Kolona SubMatches je prazna jer nisu definisana podudaranja manjeg nivoa. | { FullMatch: „The“, SubMatches: [ ], StartMatch: 32 } |
MatchAll( pangram, "the" ) |
Pronađite sva podudaranja od „the“ u tekstualnoj niski koju sadrži promenljiva pangram. Test razlikuje velika i mala slova, tako da je pronađena samo druga instanca od „the“. Kolona SubMatches je prazna jer nisu definisana podudaranja manjeg nivoa. |
![]() |
MatchAll( pangram, "the", IgnoreCase ) |
Pronađite sva podudaranja od „the“ u tekstualnoj niski koju sadrži promenljiva pangram. U ovom slučaju, test nije osetljiv na velika i mala slova, tako da su obe instance reči pronađene. Kolona SubMatches je prazna jer nisu definisana podudaranja manjeg nivoa. |
![]() |
MatchAll( pangram, "\b\wo\w\b" ) |
Pronalazi sve reči od tri slova koje imaju „o“ u sredini. Imajte na umu da se "brown" isključuje jer nije reč sa tri slova, a prema tome se ne podudara sa „\b“ (granica reči). |
![]() |
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) |
Podudara se sa svim znacima između "fox" i "dog". | { between: "skače preko uspavanog", FullMatch: "lisica skače preko uspavanog psa", SubMatches: [ "jumps over the lazy" ], StartMatch: 17 } |
Da biste videli rezultate MatchAll u galeriji:
Na praznom ekranu umetnite praznu vertikalnu kontrolu Galerija.
Podesite svojstvo Items galerije kao MatchAll( pangram, "\w+" ) ili MatchAll( pangram, MultipleLetters ).
Izaberite „Dodajte stavku sa kartice Umetanje“ na sredini kontrole galerije za odabir predloška galerije:
Dodajte kontrolu Oznaka u predložak galerije.
Podesite svojstvo Text oznake na ThisItem.FullMatch.
Galerija je ispunjena svakom rečju u našem primeru teksta. Promenite veličinu predloška galerije i kontrole oznake kako biste videli sve reči na jednom ekranu.