Função IsMatch no PowerAppsIsMatch function in PowerApps

Testa se uma cadeia 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 texto corresponde a um padrão que pode ser constituído por carateres 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.

Utilize a função IsMatch para validar que um utilizador escreveu num controlo de Entrada de texto.Use IsMatch to validate what a user has typed in a Text input control. Por exemplo, pode confirmar se o utilizador introduziu um endereço de e-mail válido antes de o resultado ser guardado na sua origem 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 critérios, adicione outros controlos que pedem ao utilizador para corrigir a entrada.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

Por predefinição, a função IsMatch executa uma correspondência sensível a maiúsculas e minúsculas para a cadeia de texto completa.By default, IsMatch performs a case-sensitive match for the entire text string. Pode modificar este comportamento ao especificar uma ou mais MatchOptions.You can modify this behavior by specifying one or more MatchOptions.

A função IsMatch devolve verdadeiro se a cadeia de texto corresponder ao padrão ou falso 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 a função IsMatch em que descreve o padrão para corresponder.The key to using IsMatch is in describing the pattern to match. Descreve o padrão numa cadeia de texto como uma combinação de:You describe the pattern in a text string as a combination of:

  • Carateres comuns, como "abc" ou "123".Ordinary characters, such as "abc" or "123".
  • Padrões predefinidos, como Letra, MultipleDigits ou E-mail.Predefined patterns, such as Letter, MultipleDigits, or Email. (A enumeração Correspondência define estes 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]+".

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

Carateres comunsOrdinary characters

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

Por exemplo, a cadeia "Olá" corresponde ao padrão "Olá" exatamente.For example, the string "Hello" matches the pattern "Hello" exactly. Sem mais nem menos.No more and no less. A cadeia "olá!"The string "hello!" não corresponde ao padrão devido ao ponto de exclamação no fim e as maiúsculas e minúsculas estão incorretas para a letra "o".doesn't match the pattern because of the exclamation point on the end and the case is wrong for the letter "h". (Veja MatchOptions para conhecer formas de alterar este comportamento.)(See MatchOptions for ways to modify this behavior.)

No idioma de padrão, determinados carateres estão reservados para fins especiais.In the pattern language, certain characters are reserved for special purposes. Para utilizar estes carateres, adicione um prefixo de caráter com uma \ (barra invertida) para indicar que o caráter deve ser executado literalmente ou utilize 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 carateres especiais:This table lists the special characters:

Caráter especialSpecial character DescriçãoDescription
,. ponto ou períododot or period
?? ponto de interrogaçãoquestion mark
** asteriscoasterisk
+ sinal de adiçãoplus
( )( ) parênteseparenthesis
[ ][ ] parênteses retossquare brackets
{ }{ } chavetascurly braces
^ acento circunflexocaret
$ cifrãodollar sign
|| barra vertical ou pipevertical bar or pipe
\ barra invertidabackslash

Por exemplo, pode corresponder a "Olá?"For example, you can match "Hello?" ao utilizar o padrão "Olá\?"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

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

Enumeração de CorrespondênciaMatch Enum DescriçãoDescription Expressão RegularRegular Expression
QualquerAny Corresponde a qualquer caráter.Matches any character. ,.
VírgulaComma Corresponde a uma vírgula.Matches a comma. ,,
DígitoDigit Corresponde a um único dígito ("0" a "9").Matches a single digit ("0" through "9"). \d\d
E-mailEmail Corresponde a um endereço de e-mail 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 "(". \(\(
LetraLetter 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 carateres que não adicionam espaços em branco (espaço, separador, nova linha).Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces Corresponde a um ou mais carateres que adicionam espaços em branco (espaço, separador, nova linha).Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace Corresponde a um único caráter 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 carateres que não adicionam espaços em branco.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces Corresponde a zero, um ou mais carateres que adicionam espaços em branco.Matches zero, one, or more characters that add whitespace. \s\s
PeríodoPeriod Corresponde a um período ou um ponto (".").Matches a period or dot ("."). \.\.
RightParenRightParen Corresponde a um parêntese direito ")".Matches a right parenthesis ")". \)\)
EspaçoSpace Corresponde a um caráter que adiciona espaço em branco.Matches a character that adds whitespace. \s\s

Por exemplo, o padrão "A" e MultipleDigits irá corresponder à letra "A" seguida de 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 utilizado pelo IsMatch é uma expressão regular.The pattern used by IsMatch is a regular expression. Os carateres comuns e padrões predefinidos que são descritos acima ajudam a criar expressões regulares.The ordinary characters and predefined patterns that are described above help build regular expressions.

As expressões regulares são muito poderosas, estão disponíveis em muitas linguagens de programação e são utilizadas para uma grande variedade de objetivos.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. Este artigo não consegue descrever todos os aspetos das expressões regulares, mas são publicadas diversas informações e tutoriais na Web para o ajudar.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.

As expressões regulares têm dialetos diferentes e o PowerApps utiliza 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, veja regular expression syntax (sintaxe de expressão regular).For more information, see regular expression syntax.

Na tabela de enumeração Correspondência acima, cada enumeração expande para uma expressão regular e a cadeia de texto na coluna "Expressão Regular" 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

Pode modificar o comportamento de IsMatch ao especificar uma ou mais opções que pode combinar ao utilizar o operador de concatenação de cadeia (&).You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

Por predefinição, a função IsMatch testa para obter uma correspondência completa de toda a cadeia de texto.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 tem de 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.
CompletoComplete Predefinição.Default. O padrão tem de corresponder ao texto completo, desde o início ao fim.The pattern must match the entire text, from beginning to end. Adiciona um ^ no início e $ no fim da expressão regular.Adds a ^ to the start and $ to the end of the regular expression.
ContémContains O padrão tem de aparecer algures no texto, mas não tem de começá-lo ou terminá-lo.The pattern must appear somewhere in the text but doesn't need to begin or end it. Não altera a expressão regular.Doesn't modify the regular expression.
EndsWithEndsWith O padrão tem de corresponder ao fim do texto.The pattern must match the end of the text. Adiciona um $ ao início da expressão regular.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase Trata-se da correspondência de letras de uma forma sensível a maiúsculas e minúsculas.Treats the matching of letters in a case-insensitive manner. Por predefinição, a correspondência é sensível a maiúsculas e minúsculas.By default, matching is case sensitive. Não altera a expressão regular.Doesn't modify the regular expression.
MultilineMultiline Correspondências entre várias linhas.Matches across multiple lines. Não altera a expressão regular.Doesn't modify the regular expression.

SintaxeSyntax

IsMatch( Texto, Padrão [, Opções ] )IsMatch( Text, Pattern [, Options ] )

  • Texto – Necessário.Text – Required. A cadeia de texto a testar.The text string to test.
  • Padrão – Necessário.Pattern – Required. O padrão a testar, como uma cadeia de texto.The pattern to test, as a text string. Concatene padrões predefinidos que a enumeração Correspondência define ou indique uma expressão regular.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Opções – Opcional.Options – Optional. Uma combinação de cadeia de texto de valores de enumeração MatchOptions.A text string combination of MatchOptions enum values. Por predefinição, é utilizado MatchOptions.Complete.By default, MatchOptions.Complete is used.

ExemplosExamples

Carateres comunsOrdinary characters

Imagine que a sua aplicação contém um controlo de Entrada de texto com o nome TextInput1.Imagine that your app contains a Text input control named TextInput1. O utilizador introduz os valores neste controlo a serem armazenados numa base de dados.The user enters values into this control to be stored in a database.

O utilizador escreve Olá mundo em TextInput1.The user types Hello world into TextInput1.

FórmulaFormula DescriçãoDescription ResultadoResult
IsMatch( TextInput1.Text, "Olá mundo" )IsMatch( TextInput1.Text, "Hello world" ) Testa se a entrada do utilizador corresponde, exatamente, à cadeia "Olá mundo"Tests whether the user's input matches, exactly, the string "Hello world" truetrue
IsMatch( TextInput1.Text, "Até breve" )IsMatch( TextInput1.Text, "Good bye" ) Testa se a entrada do utilizador corresponde, exatamente, à cadeia "Até breve"Tests whether the user's input matches, exactly, the string "Good bye" falsefalse
IsMatch( TextInput1.Text, "olá", Contains )IsMatch( TextInput1.Text, "hello", Contains ) Testa se a entrada do utilizador contém a palavra "olá" (sensível a maiúsculas e minúsculas).Tests whether the user's input contains the word "hello" (case sensitive). falsefalse
IsMatch( TextInput1.Text, "olá", Contains & IgnoreCase )IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Testa se a entrada do utilizador contém a palavra "olá" (não é sensível a 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 de Segurança 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 e-mailMatches 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, pelo que este 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 uma quantidade monetária positiva.Matches a positive currency amount. Se a entrada tiver uma vírgula decimal, a entrada também tem de conter 2 carateres numéricos após a vírgula 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 uma quantidade monetária positiva ou negativa.Matches a positive or negative currency amount. Se a entrada tiver uma vírgula decimal, a entrada também tem de conter 2 carateres numéricos após a vírgula 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 de Segurança Social dos Estados Unidos.Matches a United States Social Security number. Valida o formato, o tipo e o comprimento do campo de entrada apresentado.Validates the format, type, and length of the supplied input field. A cadeia a corresponder deve consistir em 3 carateres numéricos seguidos por um traço e, em seguida, 2 carateres seguidos por um traço e, em seguida, 4 carateres.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}" ) O mesmo que o exemplo anterior, mas um dos hífenes está fora do local 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 palavra-passe segura, que tem de conter 8, 9 ou 10 carateres, além de, pelo menos, um dígito e um caráter 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 não pode conter carateres 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 um URL http, https ou ftp.Validates an http, https, or ftp URL. truetrue