Função IsMatch no PowerAppsIsMatch function in PowerApps

Testa se uma cadeia de caracteres de texto corresponde a um padrão.Tests whether a text string matches a pattern.

DescriçãoDescription

A função IsMatch testa se uma cadeia de caracteres de texto corresponde a um padrão que pode incluir caracteres comuns, padrões predefinidos, ou uma expressão regular.The IsMatch function tests whether a text string matches a pattern that can comprise ordinary characters, predefined patterns, or a regular expression.

Use IsMatch para validar o que um usuário digitou em um controle Entrada de texto.Use IsMatch to validate what a user has typed in a Text input control. Por exemplo, você pode confirmar se o usuário inseriu um endereço de email válido antes de o resultado ser salvo em sua fonte de dados.For example, you can confirm whether the user has entered a valid email address before the result is saved to your data source. Se a entrada não corresponder aos seus critérios, adicione outros controles que solicitam que o usuário corrija a entrada.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

Por padrão, IsMatch realiza uma correspondência que diferencia maiúsculas de minúsculas para toda a cadeia de caracteres de texto.By default, IsMatch performs a case-sensitive match for the entire text string. Você pode modificar esse comportamento especificando um ou mais MatchOptions.You can modify this behavior by specifying one or more MatchOptions.

IsMatch retornará true se a cadeia de caracteres de texto corresponder ao padrão ou false se não corresponder.IsMatch returns true if the text string matches the pattern or false if it doesn't.

PadrõesPatterns

A chave para utilizar IsMatch está em descrever o padrão a ser correspondido.The key to using IsMatch is in describing the pattern to match. Você descreve o padrão em uma cadeia de caracteres de texto como uma combinação de:You describe the pattern in a text string as a combination of:

  • Caracteres normais, como "abc" ou "123".Ordinary characters, such as "abc" or "123".
  • Padrões predefinidos, como letra, MultipleDigits, ou Email.Predefined patterns, such as Letter, MultipleDigits, or Email. (A enumeração Match define esses padrões.)(The Match enum defines these patterns.)
  • Códigos de expressões regulares, como "\d+\s+\d+" ou "[a-z] +".Regular expressions codes, such as "\d+\s+\d+" or "[a-z]+".

Combinar esses elementos usando o operador de concatenação de cadeia de caracteres &.Combine these elements by using the string concatenation operator &. Por exemplo, "abc" & Digit & "\s+" é um padrão válido que corresponde aos caracteres "a", "b" e "c", seguido por um dígito de 0 a 9, seguido por, pelo menos, um caractere de espaço em branco.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.

Caracteres comunsOrdinary characters

O padrão mais simples é uma sequência de caracteres comuns a ser correspondida exatamente.The simplest pattern is a sequence of ordinary characters to be matched exactly.

Por exemplo, a cadeia de caracteres "Hello" corresponde ao padrão "Hello" exatamente.For example, the string "Hello" matches the pattern "Hello" exactly. Nem mais, nem menos.No more and no less. A cadeia de caracteres "hello!"The string "hello!" não corresponde ao padrão por causa do ponto de exclamação no final e o a correspondência de maiúscula e minúscula é incorreta para a letra "h".doesn't match the pattern because of the exclamation point on the end and the case is wrong for the letter "h". (Consulte MatchOptions para maneiras de modificar esse comportamento.)(See MatchOptions for ways to modify this behavior.)

No idioma padrão, determinados caracteres são reservados para fins especiais.In the pattern language, certain characters are reserved for special purposes. Para usar esses caracteres, Use \ (barra invertida) como prefixo do caractere para indicar que o caractere deve ser usar literalmente ou usar um dos padrões predefinidos.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. Esta tabela lista os caracteres especiais:This table lists the special characters:

Caractere especialSpecial character DescriçãoDescription
.. pontodot or period
?? ponto de interrogaçãoquestion mark
** asteriscoasterisk
+ sinal de adiçãoplus
( )( ) Parênteseparenthesis
[ ][ ] colchetessquare brackets
{ }{ } chavescurly braces
^ sinal de interpolaçãocaret
$ cifrãodollar sign
|| barra vertical ou pipevertical bar or pipe
\ barra invertidabackslash

Por exemplo, você pode corresponder "Hello?"For example, you can match "Hello?" usando o padrão "Hello\?"by using the pattern "Hello\?" com uma barra invertida antes do ponto de interrogação.with a backslash before the question mark.

Padrões predefinidosPredefined patterns

Padrões predefinidos fornecem uma maneira simples para corresponder a um conjunto de caracteres ou uma sequência de vários caracteres.Predefined patterns provide a simple way to match one of a set of characters, or a sequence of multiple characters. Use o operador de concatenação de cadeia de caracteres & para combinar suas próprias cadeias de caracteres de texto com membros da enumeração Match:Use the string concatenation operator & to combine your own text strings with members of the Match enum:

Enumeração MatchMatch Enum DescriçãoDescription Expressão regularRegular Expression
AnyAny Corresponde a qualquer caractere.Matches any character. ..
CommaComma Corresponde a uma vírgula.Matches a comma. ,,
DigitDigit Corresponde a um único dígito ("0" a "9").Matches a single digit ("0" through "9"). \d\d
EmailEmail Corresponde a um endereço de email que contém um símbolo de "arroba" ("@") e um nome de domínio que contém um ponto (".")Matches an email address that contains an "at" symbol ("@") and a domain name that contains a dot (".") .+@.+\.[^\.]{2,}.+@.+\.[^\.]{2,}
HífenHyphen Corresponde a um hífen.Matches a hyphen. \-
LeftParenLeftParen Corresponde a um parêntese esquerdo “(“.Matches a left parenthesis "(". \(\(
LetterLetter Corresponde a uma letra.Matches a letter. \p{L}\p{L}
MultipleDigitsMultipleDigits Corresponde a um ou mais dígitos.Matches one or more digitis. \d+\d+
MultipleLettersMultipleLetters Corresponde a uma ou mais letras.Matches one or more letters. \p{L}+\p{L}+
MultipleNonSpacesMultipleNonSpaces Corresponde a um ou mais caracteres que não adicionam espaço em branco (espaço, tabulação, nova linha).Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces Corresponde a um ou mais caracteres que adicionam espaço em branco (espaço, tabulação, nova linha).Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace Corresponde a um único caractere que não adiciona espaço em branco.Matches a single character that doesn't add whitespace. \S\S
OptionalDigitsOptionalDigits Corresponde a zero, um ou mais dígitos.Matches zero, one, or more digits. \d\d
OptionalLettersOptionalLetters Corresponde a zero, uma ou mais letras.Matches zero, one, or more letters. \p{L}\p{L}
OptionalNonSpacesOptionalNonSpaces Corresponde a zero, um ou mais caracteres que não adicionam espaço em branco.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces Corresponde a zero, um ou mais caracteres que adicionam espaço em branco.Matches zero, one, or more characters that add whitespace. \s\s
PeriodPeriod Corresponde a um ponto (".").Matches a period or dot ("."). \.\.
RightParenRightParen Corresponde a um parêntese direito “)”.Matches a right parenthesis ")". \)\)
SpaceSpace Corresponde a um caractere que adiciona o espaço em branco.Matches a character that adds whitespace. \s\s

Por exemplo, o padrão "A" & MultipleDigits corresponderá à letra "A" seguida por um ou mais dígitos.For example, the pattern "A" & MultipleDigits will match the letter "A" followed by one or more digits.

Expressões regularesRegular expressions

O padrão usado por IsMatch é uma expressão regular.The pattern used by IsMatch is a regular expression. Os caracteres comuns e padrões predefinidos que são descritos acima ajudam a compilar expressões regulares.The ordinary characters and predefined patterns that are described above help build regular expressions.

Expressões regulares são muito poderosas, disponíveis em muitas linguagens de programação e usadas para uma ampla variedade de finalidades.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. Este artigo não descreve todos os aspectos de expressões regulares, mas uma grande quantidade de informações e tutoriais está publicada na web para ajudá-lo.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.

Expressões regulares têm diferentes dialetos e o PowerApps usa uma variante do dialeto do JavaScript.Regular expressions have different dialects, and PowerApps uses a variant of the JavaScript dialect. Para obter mais informações, consulte sintaxe de expressão regular.For more information, see regular expression syntax.

Na tabela de enumeração Match acima, todas as enumerações expandem para uma expressão regular e a cadeia de caracteres de texto na coluna "Regular Expression" define essa expressão.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.

Opções de correspondênciaMatch options

Você pode modificar o comportamento de IsMatch especificando uma ou mais opções, que podem ser combinadas usando o operador de concatenação de cadeia de caracteres (&).You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

Por padrão, IsMatch testa uma correspondência completa da cadeia de caracteres de texto completa.By default, IsMatch tests for a complete match of the entire text string.

Enumeração MatchOptionsMatchOptions Enum DescriçãoDescription Impacto na expressão regularImpact on regular expression
BeginsWithBeginsWith O padrão deve corresponder desde o início do texto.The pattern must match from the beginning of the text. Adiciona um ^ ao início da expressão regular.Adds a ^ to the start of the regular expression.
CompleteComplete Padrão.Default. O padrão deve corresponder a todo o texto, do início ao fim.The pattern must match the entire text, from beginning to end. Adiciona um ^ ao início e $ ao final da expressão regular.Adds a ^ to the start and $ to the end of the regular expression.
ContémContains O padrão deve aparecer em algum lugar no texto, mas não precisa começar ou terminar com ele.The pattern must appear somewhere in the text but doesn't need to begin or end it. Não modifica a expressão regular.Doesn't modify the regular expression.
EndsWithEndsWith O padrão deve corresponder com o final do texto.The pattern must match the end of the text. Adiciona um $ ao final da expressão regular.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase Trata a correspondência de letras de uma maneira que não diferencia maiúsculas de minúsculas.Treats the matching of letters in a case-insensitive manner. Por padrão, a correspondência diferencia maiúsculas de minúsculas.By default, matching is case sensitive. Não modifica a expressão regular.Doesn't modify the regular expression.
MultilineMultiline Corresponde em várias linhas.Matches across multiple lines. Não modifica a expressão regular.Doesn't modify the regular expression.

SintaxeSyntax

IsMatch( Text, Pattern [, Options ] )IsMatch( Text, Pattern [, Options ] )

  • Texto – Obrigatório.Text – Required. A cadeia de caracteres de texto a ser testada.The text string to test.
  • Pattern – Obrigatório.Pattern – Required. O padrão para testar, como uma cadeia de caracteres de texto.The pattern to test, as a text string. Concatenar padrões predefinidos que a enumeração Match define ou fornece uma expressão regular.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Options – Opcional.Options – Optional. Uma combinação de cadeia de caracteres de texto de valores de enumeração MatchOptions.A text string combination of MatchOptions enum values. Por padrão, MatchOptions.Complete é usado.By default, MatchOptions.Complete is used.

ExemplosExamples

Caracteres comunsOrdinary characters

Imagine que seu aplicativo contém um controle Entrada de texto chamado TextInput1.Imagine that your app contains a Text input control named TextInput1. O usuário insere valores neste controle para ser armazenado em um banco de dados.The user enters values into this control to be stored in a database.

O usuário digita Hello world em TextInput1.The user types Hello world into TextInput1.

FórmulaFormula DescriçãoDescription ResultadoResult
IsMatch( TextInput1.Text, "Hello world" )IsMatch( TextInput1.Text, "Hello world" ) Testa se a entrada do usuário corresponde, exatamente, à cadeia de caracteres "Hello world"Tests whether the user's input matches, exactly, the string "Hello world" truetrue
IsMatch( TextInput1.Text, "Good bye" )IsMatch( TextInput1.Text, "Good bye" ) Testa se a entrada do usuário corresponde, exatamente, à cadeia de caracteres "Good bye"Tests whether the user's input matches, exactly, the string "Good bye" falsefalse
IsMatch( TextInput1.Text, "hello", Contains )IsMatch( TextInput1.Text, "hello", Contains ) Testa se a entrada do usuário contém a palavra "hello" (com distinção entre maiúsculas e minúsculas).Tests whether the user's input contains the word "hello" (case sensitive). falsefalse
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase )IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Testa se a entrada do usuário contém a palavra "hello" (sem distinção entre maiúsculas e minúsculas).Tests whether the user's input contains the word "hello" (case insensitive). truetrue

Padrões predefinidosPredefined patterns

FórmulaFormula DescriçãoDescription ResultadoResult
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 ) Corresponde a um número do Seguro Social dos Estados UnidosMatches a United States Social Security Number truetrue
IsMatch( "joan@contoso.com", Email )IsMatch( "joan@contoso.com", Email ) Corresponde a um endereço de emailMatches an email address truetrue
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits )IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Corresponde a uma sequência de dígitos, um período e, em seguida, zero ou mais dígitos.Matches a sequence of digits, a period, and then zero or more digits. truetrue
IsMatch( "123", MultipleDigits & Period & OptionalDigits )IsMatch( "123", MultipleDigits & Period & OptionalDigits ) Corresponde a uma sequência de dígitos, um período e, em seguida, zero ou mais dígitos.Matches a sequence of digits, a period, and then zero or more digits. Um período não aparece no texto, portanto, esse padrão não é correspondido.A period doesn't appear in the text, so this pattern isn't matched. falsefalse

Expressões regularesRegular expressions

FórmulaFormula DescriçãoDescription ResultadoResult
IsMatch( "986", "\d+" )IsMatch( "986", "\d+" ) Corresponde a um número inteiro maior que zero.Matches a an integer greater than zero. truetrue
IsMatch( "1.02", "\d+(.\d\d)?" )IsMatch( "1.02", "\d+(.\d\d)?" ) Corresponde a um valor de moeda positivo.Matches a positive currency amount. Se a entrada contiver um ponto decimal, a entrada também deverá conter dois caracteres numéricos após o ponto decimal.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. Por exemplo, 3,00 é válido, mas 3,1 não é.For example, 3.00 is valid, but 3.1 isn't. truetrue
IsMatch( "-4.95", "(-)?\d+(.\d\d)?" )IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) Corresponde a um valor de moeda positivo ou negativo.Matches a positive or negative currency amount. Se a entrada contiver um ponto decimal, a entrada também deverá conter dois caracteres numéricos após o ponto decimal.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}" ) Corresponde a um número do Seguro Social dos Estados Unidos.Matches a United States Social Security number. Valida o formato, o tipo e o comprimento do campo de entrada fornecido.Validates the format, type, and length of the supplied input field. A cadeia de caracteres a ser correspondida deve conter 3 caracteres numéricos seguidos por um traço e, em seguida, 2 caracteres numéricos seguidos por um traço e, em seguida, 4 caracteres numéricos.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}" ) Mesmo que no exemplo anterior, mas um hífen está fora do lugar na entrada.Same as the previous example, but one of the hyphens is out of place in the input. falsefalse
IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" )IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" ) Valida uma senha forte, que deve conter 8, 9 ou 10 caracteres, além de, pelo menos, um dígito e, pelo menos, um caractere alfabético.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. A cadeia de caracteres não deve conter caracteres especiais.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-.?,'/\+&%$#_]\*)?" ) Valida uma URL http, https ou ftp.Validates an http, https, or ftp URL. truetrue