Funkce IsMatch v PowerAppsIsMatch function in PowerApps

Testuje, jestli se textový řetězec shoduje se vzorem.Tests whether a text string matches a pattern.

PopisDescription

Funkce IsMatch testuje, jestli se textový řetězec shoduje se vzorem, který se může skládat z obyčejných znaků, předdefinovaných vzorů nebo regulárního výrazu.The IsMatch function tests whether a text string matches a pattern that can comprise ordinary characters, predefined patterns, or a regular expression.

Pomocí funkce IsMatch můžete ověřit, jestli uživatel zadal správný text do ovládacího prvku Textové zadání.Use IsMatch to validate what a user has typed in a Text input control. Můžete třeba ověřit, jestli uživatel zadal platnou e-mailovou adresu, než se výsledek uloží do vašeho zdroje dat.For example, you can confirm whether the user has entered a valid email address before the result is saved to your data source. Pokud zadaný text nesplňuje vaše kritéria, přidejte další prvky, které uživatele vyzvou, aby zadaný text opravil.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

Ve výchozím nastavení IsMatch zkontroluje shodu celého textového řetězce s rozlišením velkých a malých písmen.By default, IsMatch performs a case-sensitive match for the entire text string. Toto chování můžete upravit tak, že určíte jednu nebo více možností shody.You can modify this behavior by specifying one or more MatchOptions.

Pokud se textový řetězec se vzorem shoduje, IsMatch vrátí true (pravda), v opačném případě vrátí false (nepravda).IsMatch returns true if the text string matches the pattern or false if it doesn't.

VzoryPatterns

Klíčem k používání funkce IsMatch je popsání vzoru, se kterým se má řetězec shodovat.The key to using IsMatch is in describing the pattern to match. Vzor v textovém řetězci se popisuje jako kombinace:You describe the pattern in a text string as a combination of:

  • Obyčejných znaků, třeba "abc" nebo "123"Ordinary characters, such as "abc" or "123".
  • Předdefinovaných vzorů, třeba Letter, MultipleDigits nebo EmailPredefined patterns, such as Letter, MultipleDigits, or Email. (tyto vzory jsou definované ve výčtu shod)(The Match enum defines these patterns.)
  • Kódů regulárních výrazů, třeba "\d+\s+\d+" nebo "[a-z]+"Regular expressions codes, such as "\d+\s+\d+" or "[a-z]+".

Tyto prvky můžete kombinovat pomocí operátoru pro zřetězení řetězců &.Combine these elements by using the string concatenation operator &. Například "abc" & Digit & "\s+" je platný vzor, který se shoduje se znaky "a", "b" a "c", za kterými následuje číslice od 0 do 9, za kterou následuje aspoň jeden prázdný znak.For example, "abc" & Digit & "\s+" is a valid pattern that matches the characters "a", "b", and "c", followed by a digit from 0 to 9, followed by at least one whitespace character.

Obyčejné znakyOrdinary characters

Nejjednodušším vzorem je posloupnost obyčejných znaků, které se mají přesně shodovat.The simplest pattern is a sequence of ordinary characters to be matched exactly.

Třeba řetězec "Hello" se přesně shoduje se vzorem "Hello".For example, the string "Hello" matches the pattern "Hello" exactly. O nic víc a o nic méně.No more and no less. Text "Dobrý den!"The string "hello!" neodpovídá vzoru z důvodu vykřičník na konci a případě je nesprávný pro písmeno "h".doesn't match the pattern because of the exclamation point on the end and the case is wrong for the letter "h". (Způsoby, jak toto chování upravit, najdete v části Možnosti shody.)(See MatchOptions for ways to modify this behavior.)

V jazyce vzoru jsou některé znaky vyhrazené pro zvláštní účely.In the pattern language, certain characters are reserved for special purposes. Pokud tyto znaky chcete použít, buď před znak napište \ (zpětné lomítko) na znamení, že se má znak brát doslova, nebo použijte některý z předdefinovaných vzorů.To use these characters, either prefix the character with a \ (backslash) to indicate that the character should be taken literally or use one of the predefined patterns. Speciální znaky jsou uvedené v této tabulce:This table lists the special characters:

Speciální znakSpecial character PopisDescription
.. tečkadot or period
?? otazníkquestion mark
** hvězdičkaasterisk
+ plusplus
( )( ) kulaté závorkyparenthesis
[ ][ ] hranaté závorkysquare brackets
{ }{ } složené závorkycurly braces
^ stříškacaret
$ znak dolarudollar sign
|| svislá čára neboli svislítkovertical bar or pipe
\ zpětné lomítkobackslash

Například můžete odpovídět "Dobrý den?"For example, you can match "Hello?" pomocí vzoru "Dobrý den\?"by using the pattern "Hello\?" obráceným lomítkem před Nápověda.with a backslash before the question mark.

Předdefinované vzoryPredefined patterns

Předdefinované vzory nabízejí jednoduchý způsob, jak najít shodu s jedním ze sady znaků nebo s posloupností více znaků.Predefined patterns provide a simple way to match one of a set of characters, or a sequence of multiple characters. Pomocí operátoru pro zřetězení řetězců & můžete své vlastní textové řetězce zkombinovat se členy výčtu shod:Use the string concatenation operator & to combine your own text strings with members of the Match enum:

Výčet shodMatch Enum PopisDescription Regulární výrazRegular Expression
AnyAny Zkontroluje shodu s libovolným znakem.Matches any character. ..
CommaComma Zkontroluje shodu s čárkou.Matches a comma. ,,
DigitDigit Zkontroluje shodu s jednou číslicí (0 až 9).Matches a single digit ("0" through "9"). \d\d
EmailEmail Zkontroluje shodu s e-mailovou adresou, která obsahuje symbol „zavináče“ (@) a název domény obsahující tečku (.).Matches an email address that contains an "at" symbol ("@") and a domain name that contains a dot (".") .+@.+\.[^\.]{2,}.+@.+\.[^\.]{2,}
SpojovníkHyphen Zkontroluje shodu se spojovníkem.Matches a hyphen. \-
LeftParenLeftParen Zkontroluje shodu s levou závorkou (.Matches a left parenthesis "(". \(\(
LetterLetter Zkontroluje shodu s písmenem.Matches a letter. \p{L}\p{L}
MultipleDigitsMultipleDigits Zkontroluje shodu s jednou nebo více číslicemi.Matches one or more digitis. \d+\d+
MultipleLettersMultipleLetters Zkontroluje shodu s jedním nebo více písmeny.Matches one or more letters. \p{L}+\p{L}+
MultipleNonSpacesMultipleNonSpaces Zkontroluje shodu s jedním nebo více znaky, které nepřidávají prázdné znaky (mezera, tabulátor, nový řádek).Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces Zkontroluje shodu s jedním nebo více znaky, které přidávají prázdné znaky (mezera, tabulátor, nový řádek).Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace Zkontroluje shodu s jedním znakem, který nepřidává prázdný znak.Matches a single character that doesn't add whitespace. \S\S
OptionalDigitsOptionalDigits Zkontroluje shodu s žádnou, jednou nebo více číslicemi.Matches zero, one, or more digits. \d\d
OptionalLettersOptionalLetters Zkontroluje shodu s žádným, jedním nebo více písmeny.Matches zero, one, or more letters. \p{L}\p{L}
OptionalNonSpacesOptionalNonSpaces Zkontroluje shodu s žádným, jedním nebo více znaky, které nepřidávají prázdné znaky.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces Zkontroluje shodu s žádným, jedním nebo více znaky, které přidávají prázdné znaky.Matches zero, one, or more characters that add whitespace. \s\s
PeriodPeriod Zkontroluje shodu s tečkou (.).Matches a period or dot ("."). \.\.
RightParenRightParen Zkontroluje shodu s pravou závorkou ).Matches a right parenthesis ")". \)\)
SpaceSpace Zkontroluje shodu se znakem, který přidává prázdný znak.Matches a character that adds whitespace. \s\s

Třeba vzor "A" & MultipleDigits zkontroluje shodu s písmenem „A“, za kterým následuje jedna nebo více číslic.For example, the pattern "A" & MultipleDigits will match the letter "A" followed by one or more digits.

Regulární výrazyRegular expressions

Vzor použitý funkcí IsMatch je regulární výraz.The pattern used by IsMatch is a regular expression. K vytváření regulárních výrazů pomáhají obyčejné znaky a předdefinované vzory, které jsou popsané výše.The ordinary characters and predefined patterns that are described above help build regular expressions.

Regulární výrazy jsou velmi účinné, dostupné v řadě programovacích jazyků a používají se k nejrůznějším účelům.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. Tento článek nemůže popsat všechny aspekty regulárních výrazů, ale pomoct vám můžou spousty informací a pokynů, které najdete na internetu.This article can't describe all aspects of regular expressions, but a wealth of information and tutorials are published on the web to aid you.

Regulární výrazy mají různé dialekty a PowerApps používá variantu dialektu JavaScriptu.Regular expressions have different dialects, and PowerApps uses a variant of the JavaScript dialect. Další informace najdete v syntaxi regulárních výrazů.For more information, see regular expression syntax.

V tabulce výčtu shod výše se každá položka výčtu dá zapsat regulárním výrazem a textový řetězec ve sloupci Regulární výraz tento výraz definuje.In the Match enum table above, each enum expands into a regular expression, and the text string in the "Regular Expression" column defines that expression.

Možnosti shodyMatch options

Chování funkce IsMatch můžete upravit zadáním jedné nebo více možností, které můžete kombinovat pomocí operátoru pro zřetězení řetězců (&).You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

Ve výchozím nastavení IsMatch testuje úplnou shodu celého textového řetězce.By default, IsMatch tests for a complete match of the entire text string.

Výčet možností shodyMatchOptions Enum PopisDescription Vliv na regulární výrazImpact on regular expression
BeginsWithBeginsWith Vzor se musí shodovat od začátku textu.The pattern must match from the beginning of the text. Přidá ^ na začátek regulárního výrazu.Adds a ^ to the start of the regular expression.
CompleteComplete Výchozí.Default. Vzor se musí shodovat s celým textem od začátku do konce.The pattern must match the entire text, from beginning to end. Přidá ^ na začátek a $ na konec regulárního výrazu.Adds a ^ to the start and $ to the end of the regular expression.
ContainsContains Vzor se musí nacházet někde v textu, ale nemusí být na začátku ani na konci.The pattern must appear somewhere in the text but doesn't need to begin or end it. Nezmění regulární výraz.Doesn't modify the regular expression.
EndsWithEndsWith Vzor se musí shodovat s koncem textu.The pattern must match the end of the text. Přidá $ na konec regulárního výrazu.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase Ignoruje velikost písmen.Treats the matching of letters in a case-insensitive manner. Ve výchozím nastavení se velikost písmen rozlišuje.By default, matching is case sensitive. Nezmění regulární výraz.Doesn't modify the regular expression.
MultilineMultiline Kontroluje shodu na více řádcích.Matches across multiple lines. Nezmění regulární výraz.Doesn't modify the regular expression.

SyntaxeSyntax

IsMatch( Text; Vzor [; Možnosti ] )IsMatch( Text, Pattern [, Options ] )

  • Text – povinné.Text – Required. Textový řetězec, který se má otestovat.The text string to test.
  • Vzor – povinný.Pattern – Required. Vzor pro testování, například textový řetězec.The pattern to test, as a text string. Zřetězte předdefinované vzory, které definuje výčet shod, nebo zadejte regulární výraz.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Možnosti – volitelné.Options – Optional. Textový řetězec s kombinací hodnot z výčtu možností shody.A text string combination of MatchOptions enum values. Ve výchozím nastavení se používá MatchOptions.Complete.By default, MatchOptions.Complete is used.

PříkladyExamples

Obyčejné znakyOrdinary characters

Představte si, že vaše aplikace obsahuje ovládací prvek Textové zadání s názvem TextovéZadání1.Imagine that your app contains a Text input control named TextInput1. Uživatel do tohoto ovládacího prvku zadá hodnoty, které se mají uložit do databáze.The user enters values into this control to be stored in a database.

Uživatel do prvku Textovézadání1 napíše Hello world.The user types Hello world into TextInput1.

VzorecFormula PopisDescription VýsledekResult
IsMatch( TextovéZadání1.Text; "Hello world" )IsMatch( TextInput1.Text, "Hello world" ) Zkontroluje, jestli se uživatelovo zadání přesně shoduje s textem „Hello world“.Tests whether the user's input matches, exactly, the string "Hello world" truetrue
IsMatch( TextovéZadání1.Text; "Good bye" )IsMatch( TextInput1.Text, "Good bye" ) Zkontroluje, jestli se uživatelovo zadání přesně shoduje s textem „Good bye“.Tests whether the user's input matches, exactly, the string "Good bye" falsefalse
IsMatch( TextovéZadání1.Text; "hello"; Contains )IsMatch( TextInput1.Text, "hello", Contains ) Zkontroluje, jestli uživatelovo zadání obsahuje slovo „hello“ (s rozlišením velikosti písmen).Tests whether the user's input contains the word "hello" (case sensitive). falsefalse
IsMatch( TextovéZadání1.Text; "hello"; Contains & IgnoreCase )IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Zkontroluje, jestli uživatelovo zadání obsahuje slovo „hello“ (bez rozlišení velikosti písmen).Tests whether the user's input contains the word "hello" (case insensitive). truetrue

Předdefinované vzoryPredefined patterns

VzorecFormula PopisDescription VýsledekResult
IsMatch( "123-45-7890"; Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit )IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit ) Odpovídá číslu sociálního pojištění v USA.Matches a United States Social Security Number truetrue
IsMatch( "joan@contoso.com"; Email )IsMatch( "joan@contoso.com", Email ) Odpovídá e-mailové adrese.Matches an email address truetrue
IsMatch( "123.456"; MultipleDigits & Period & OptionalDigits )IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Odpovídá posloupnosti číslic následovaných tečkou a pak žádnou nebo více číslicemi.Matches a sequence of digits, a period, and then zero or more digits. truetrue
IsMatch( "123"; MultipleDigits & Period & OptionalDigits )IsMatch( "123", MultipleDigits & Period & OptionalDigits ) Odpovídá posloupnosti číslic následovaných tečkou a pak žádnou nebo více číslicemi.Matches a sequence of digits, a period, and then zero or more digits. Tečka se v textu nenachází, proto se tento vzor neshoduje.A period doesn't appear in the text, so this pattern isn't matched. falsefalse

Regulární výrazyRegular expressions

VzorecFormula PopisDescription VýsledekResult
IsMatch( "986"; "\d+" )IsMatch( "986", "\d+" ) Odpovídá celému číslu většímu než nula.Matches a an integer greater than zero. truetrue
IsMatch( "1.02"; "\d+(.\d\d)?" )IsMatch( "1.02", "\d+(.\d\d)?" ) Odpovídá kladné peněžní částce.Matches a positive currency amount. Pokud zadání obsahuje desetinnou tečku, musí obsahovat také dva číselné znaky za desetinnou tečkou.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. Například 3.00 je platné, ale 3.1 není.For example, 3.00 is valid, but 3.1 isn't. truetrue
IsMatch( "-4.95"; "(-)?\d+(.\d\d)?" )IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) Odpovídá kladné nebo záporné peněžní částce.Matches a positive or negative currency amount. Pokud zadání obsahuje desetinnou tečku, musí obsahovat také dva číselné znaky za desetinnou tečkou.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. truetrue
IsMatch( "111-11-1111"; "\d{3}-\d{2}-\d{4}" )IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Odpovídá číslu sociálního pojištění v USA.Matches a United States Social Security number. Ověří formát, typ a délku zadaného pole.Validates the format, type, and length of the supplied input field. Řetězec, který se má shodovat, musí obsahovat 3 číselné znaky, po kterých následuje spojovník a pak 2 číselné znaky, po kterých následuje pomlčka a další 4 číselné znaky.The string to match must consist of 3 numeric characters followed by a dash, then 2 numeric characters followed by a dash, and then 4 numeric characters. truetrue
IsMatch( "111-111-111"; "\d{3}-\d{2}-\d{4}" )IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Stejné jako předchozí příklad, ale jeden ze spojovníků není v zadání na správném místě.Same as the previous example, but one of the hyphens is out of place in the input. falsefalse
IsMatch( "slabeheslo"; "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8;10})" )IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" ) Ověří silné heslo, které musí obsahovat 8, 9 nebo 10 znaků a kromě toho aspoň jednu číslici a aspoň jeden znak abecedy.Validates a strong password, which must contain 8, 9, or 10 characters, in addition to at least one digit and at least one alphabetic character. Řetězec nesmí obsahovat speciální znaky.The string must not contain special characters. falsefalse
IsMatch( "http://microsoft.com"; "(ht|f)tp(s?)://[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(/?)([a-zA-Z0-9-.?,'/\+&%$#_]*)?" )IsMatch( "http://microsoft.com", "(ht|f)tp(s?)://[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(/?)([a-zA-Z0-9-.?,'/\+&%$#_]*)?" ) Ověří adresu URL s protokolem http, https nebo ftp.Validates an http, https, or ftp URL. truetrue