Función IsMatch en PowerAppsIsMatch function in PowerApps

Comprueba si una cadena de texto coincide con un patrón.Tests whether a text string matches a pattern.

DescripciónDescription

La función IsMatch comprueba si una cadena de texto coincide con un patrón que puede incluir caracteres normales, patrones predefinidos o una expresión 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 que un usuario ha escrito en un control Entrada de texto.Use IsMatch to validate what a user has typed in a Text input control. Por ejemplo, puede confirmar si el usuario ha escrito una dirección de correo electrónico válida antes de que el resultado se guarde en el origen de datos.For example, you can confirm whether the user has entered a valid email address before the result is saved to your data source. Si la entrada no coincide con los criterios, agregue otros controles que pidan al usuario que corrija la entrada.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

De forma predeterminada, IsMatch distingue mayúsculas y minúsculas en la cadena de texto completo.By default, IsMatch performs a case-sensitive match for the entire text string. Puede modificar este comportamiento especificando una o varias MatchOptions.You can modify this behavior by specifying one or more MatchOptions.

IsMatch devuelve true si la cadena de texto coincide con el patrón o false si no es así.IsMatch returns true if the text string matches the pattern or false if it doesn't.

PatronesPatterns

La clave para usar IsMatch está en describir el patrón de coincidencia.The key to using IsMatch is in describing the pattern to match. El patrón en una cadena de texto se describe como una combinación de:You describe the pattern in a text string as a combination of:

  • Caracteres normales, como "abc" o "123".Ordinary characters, such as "abc" or "123".
  • Patrones predefinidos, como Letter, MultipleDigits o Email.Predefined patterns, such as Letter, MultipleDigits, or Email. (La enumeración Match define estos patrones).(The Match enum defines these patterns.)
  • Códigos de expresiones regulares, como "\d+\s+\d+" o "[a-z]+".Regular expressions codes, such as "\d+\s+\d+" or "[a-z]+".

Combine estos elementos mediante el operador de concatenación de cadenas &.Combine these elements by using the string concatenation operator &. Por ejemplo, "abc" & Digit & "\s+" es un patrón válido que busca la coincidencia de los caracteres "a", "b" y "c", seguido de un dígito del 0 al 9, seguido de al menos un carácter de espacio en blanco.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 normalesOrdinary characters

El patrón más sencillo es una secuencia de caracteres normales que deben coincidir exactamente.The simplest pattern is a sequence of ordinary characters to be matched exactly.

Por ejemplo, la cadena "Hello" coincide con el patrón "Hello" exactamente.For example, the string "Hello" matches the pattern "Hello" exactly. Ni más ni menos.No more and no less. La cadena "hello!"The string "hello!" no coincide con el patrón por el signo de exclamación del final y la "h" en minúscula.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 ver formas de modificar este comportamiento).(See MatchOptions for ways to modify this behavior.)

En el lenguaje del patrón, algunos caracteres están reservados para fines especiales.In the pattern language, certain characters are reserved for special purposes. Para usar estos caracteres, coloque delante una \ (barra diagonal inversa) para indicar que el carácter se debe usar literalmente o utilice uno de los patrones 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. En esta tabla se enumeran los caracteres especiales:This table lists the special characters:

Carácter especialSpecial character DescripciónDescription
.. puntodot or period
?? signo de interrogaciónquestion mark
** asteriscoasterisk
+ signo másplus
( )( ) paréntesisparenthesis
[ ][ ] corchetessquare brackets
{ }{ } llavescurly braces
^ símbolo de intercalacióncaret
$ signo de dólardollar sign
|| barra verticalvertical bar or pipe
\ barra diagonal inversabackslash

Por ejemplo, puede buscar la coincidencia de "Hello?"For example, you can match "Hello?" mediante el patrón "Hello\?"by using the pattern "Hello\?" con una barra diagonal delante del signo de interrogación.with a backslash before the question mark.

Patrones predefinidosPredefined patterns

Los patrones predefinidos proporcionan una manera sencilla de buscar coincidencia con un carácter de un conjunto de caracteres o con una secuencia de varios caracteres.Predefined patterns provide a simple way to match one of a set of characters, or a sequence of multiple characters. Use el operador de concatenación de cadenas & para combinar sus propias cadenas de texto con miembros de la enumeración Match:Use the string concatenation operator & to combine your own text strings with members of the Match enum:

Enumeración MatchMatch Enum DescripciónDescription Expresión regularRegular Expression
AnyAny Busca la coincidencia con cualquier carácter.Matches any character. ..
CommaComma Busca la coincidencia con una coma.Matches a comma. ,,
DigitDigit Busca la coincidencia con un único dígito (del "0" al "9").Matches a single digit ("0" through "9"). \d\d
EmailEmail Busca la coincidencia con una dirección de correo electrónico que contiene un símbolo "arroba" ("@") y un nombre de dominio que contiene un punto (".")Matches an email address that contains an "at" symbol ("@") and a domain name that contains a dot (".") .+@.+\.[^\.]{2,}.+@.+\.[^\.]{2,}
HyphenHyphen Busca la coincidencia con un guion.Matches a hyphen. \-
LeftParenLeftParen Busca la coincidencia con un paréntesis izquierdo "(".Matches a left parenthesis "(". \(\(
LetterLetter Busca la coincidencia con una letra.Matches a letter. \p{L}\p{L}
MultipleDigitsMultipleDigits Busca la coincidencia con uno o varios dígitos.Matches one or more digitis. \d+\d+
MultipleLettersMultipleLetters Busca la coincidencia con una o varias letras.Matches one or more letters. \p{L}+\p{L}+
MultipleNonSpacesMultipleNonSpaces Busca la coincidencia con uno o varios caracteres que no agregan espacios en blanco (espacio, tabulación, nueva línea).Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces Busca la coincidencia con uno o varios caracteres que agregan espacio en blanco (espacio, tabulación, nueva línea).Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace Busca la coincidencia con un único carácter que no agrega espacios en blanco.Matches a single character that doesn't add whitespace. \S\S
OptionalDigitsOptionalDigits Busca la coincidencia con cero, uno o más dígitos.Matches zero, one, or more digits. \d\d
OptionalLettersOptionalLetters Busca la coincidencia con cero, una o más letras.Matches zero, one, or more letters. \p{L}\p{L}
OptionalNonSpacesOptionalNonSpaces Busca la coincidencia con cero, uno o más caracteres que no agregan espacio en blanco.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces Busca la coincidencia con cero, uno o más caracteres que agregan espacio en blanco.Matches zero, one, or more characters that add whitespace. \s\s
PeriodPeriod Busca la coincidencia con un punto (".").Matches a period or dot ("."). \.\.
RightParenRightParen Busca la coincidencia con un paréntesis derecho ")".Matches a right parenthesis ")". \)\)
SpaceSpace Busca la coincidencia con un carácter que agrega espacio en blanco.Matches a character that adds whitespace. \s\s

Por ejemplo, el patrón "A" & MultipleDigits buscará la coincidencia con la letra "A" seguido de uno o varios dígitos.For example, the pattern "A" & MultipleDigits will match the letter "A" followed by one or more digits.

Expresiones regularesRegular expressions

El patrón usado por IsMatch es una expresión regular.The pattern used by IsMatch is a regular expression. Los caracteres normales y los patrones predefinidos que se han descrito anteriormente ayudan a crear expresiones regulares.The ordinary characters and predefined patterns that are described above help build regular expressions.

Las expresiones regulares son muy eficaces, están disponibles en muchos lenguajes de programación y se usan para multitud de propósitos.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. En este artículo no se pueden describir todos los aspectos de las expresiones regulares, pero existe una gran cantidad de información y tutoriales publicados en Internet que le pueden servir de ayuda.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.

Las expresiones regulares tienen distintos dialectos y PowerApps emplea una variante del dialecto JavaScript.Regular expressions have different dialects, and PowerApps uses a variant of the JavaScript dialect. Para más información, consulte la sintaxis de expresiones regulares.For more information, see regular expression syntax.

En la tabla de enumeración Match anterior, cada enumeración se expande en una expresión regular y la cadena de texto de la columna "Regular Expression" define esa expresión.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.

Opciones de coincidenciaMatch options

También puede modificar el comportamiento de IsMatch mediante la especificación de una o más opciones, que se pueden combinar con el operador de concatenación de cadenas (&).You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

De forma predeterminada, IsMatch busca una coincidencia completa de toda la cadena de texto.By default, IsMatch tests for a complete match of the entire text string.

Enumeración MatchOptionsMatchOptions Enum DescripciónDescription Impacto en la expresión regularImpact on regular expression
BeginsWithBeginsWith El patrón debe coincidir desde el principio del texto.The pattern must match from the beginning of the text. Agrega un ^ al principio de la expresión regular.Adds a ^ to the start of the regular expression.
CompleteComplete Predeterminado.Default. El patrón debe coincidir con el texto entero, de principio a fin.The pattern must match the entire text, from beginning to end. Agrega ^ al principio y $ al final de la expresión regular.Adds a ^ to the start and $ to the end of the regular expression.
ContainsContains El patrón debe aparecer en alguna parte del texto pero no tiene que ser al principio o al final.The pattern must appear somewhere in the text but doesn't need to begin or end it. No modifica la expresión regular.Doesn't modify the regular expression.
EndsWithEndsWith El patrón debe coincidir con el final del texto.The pattern must match the end of the text. Agrega $ al final de la expresión regular.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase Trata la búsqueda de coincidencias de letras sin distinción de mayúsculas y minúsculas.Treats the matching of letters in a case-insensitive manner. De forma predeterminada, la búsqueda de coincidencia distingue mayúsculas y minúsculas.By default, matching is case sensitive. No modifica la expresión regular.Doesn't modify the regular expression.
MultilineMultiline Busca la coincidencia entre varias líneas.Matches across multiple lines. No modifica la expresión regular.Doesn't modify the regular expression.

SintaxisSyntax

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

  • Texto: requerido.Text – Required. La cadena de texto que se va a probar.The text string to test.
  • Pattern: requerido.Pattern – Required. El patrón que se va a probar, como una cadena de texto.The pattern to test, as a text string. Concatene los patrones predefinidos que define la enumeración Match o proporcione una expresión regular.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Options: valor opcional.Options – Optional. Una combinación de cadenas de texto de valores de enumeración MatchOptions.A text string combination of MatchOptions enum values. De forma predeterminada, se usa MatchOptions.Complete.By default, MatchOptions.Complete is used.

EjemplosExamples

Caracteres normalesOrdinary characters

Imagine que la aplicación contiene un control Entrada de texto denominado TextInput1.Imagine that your app contains a Text input control named TextInput1. El usuario escribe valores en este control para almacenarlos en una base de datos.The user enters values into this control to be stored in a database.

El usuario escribe Hello world en TextInput1.The user types Hello world into TextInput1.

FórmulaFormula DescripciónDescription ResultadoResult
IsMatch( TextInput1.Text, "Hello world" )IsMatch( TextInput1.Text, "Hello world" ) Comprueba si la entrada del usuario coincide exactamente con la cadena "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" ) Comprueba si la entrada del usuario coincide exactamente con la cadena "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 ) Comprueba si la entrada del usuario contiene la palabra "hello" (con distinción de mayúsculas y 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 ) Comprueba si la entrada del usuario contiene la palabra "hello" (con distinción de mayúsculas y minúsculas).Tests whether the user's input contains the word "hello" (case insensitive). truetrue

Patrones predefinidosPredefined patterns

FórmulaFormula DescripciónDescription 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 ) Busca la coincidencia con un número de la Seguridad Social de Estados Unidos.Matches a United States Social Security Number truetrue
IsMatch( "joan@contoso.com", Email )IsMatch( "joan@contoso.com", Email ) Busca la coincidencia con una dirección de correo electrónico.Matches an email address truetrue
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits )IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Busca la coincidencia con una secuencia de dígitos, un punto y luego cero o más 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 ) Busca la coincidencia con una secuencia de dígitos, un punto y luego cero o más dígitos.Matches a sequence of digits, a period, and then zero or more digits. Un punto no aparece en el texto, así que no hay coincidencia con este patrón.A period doesn't appear in the text, so this pattern isn't matched. falsefalse

Expresiones regularesRegular expressions

FórmulaFormula DescripciónDescription ResultadoResult
IsMatch( "986", "\d+" )IsMatch( "986", "\d+" ) Busca la coincidencia con un número entero mayor que cero.Matches a an integer greater than zero. truetrue
IsMatch( "1.02", "\d+(.\d\d)?" )IsMatch( "1.02", "\d+(.\d\d)?" ) Busca la coincidencia con un importe de divisa positivo.Matches a positive currency amount. Si la entrada contiene un separador decimal, la entrada también debe contener 2 caracteres numéricos después de la coma decimal.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. Por ejemplo, 3,00 es válido, pero no 3,1.For example, 3.00 is valid, but 3.1 isn't. truetrue
IsMatch( "-4.95", "(-)?\d+(.\d\d)?" )IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) Busca la coincidencia con un importe de divisa negativo.Matches a positive or negative currency amount. Si la entrada contiene un separador decimal, la entrada también debe contener 2 caracteres numéricos después de la coma 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}" ) Busca la coincidencia con un número de la Seguridad Social de Estados Unidos.Matches a United States Social Security number. Valida el formato, el tipo y la longitud del campo de entrada proporcionado.Validates the format, type, and length of the supplied input field. La cadena con la que se busca coincidencia debe estar formada por 3 caracteres numéricos seguidos de un guion, luego 2 caracteres numéricos seguidos de un guion y luego 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}" ) Lo mismo que el ejemplo anterior, pero uno de los guiones está fuera de lugar en la 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 una contraseña segura, que debe contener 8, 9 o 10 caracteres, además de al menos un dígito y al menos un carácter 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. La cadena no debe contener caracteres especiales.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 una dirección URL http, https o ftp.Validates an http, https, or ftp URL. truetrue