Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Compara una cadena con un patrón.
Importante
El Like operador no se admite actualmente en proyectos de .NET Core y .NET Standard.
Sintaxis
result = string Like pattern
Partes
result
Obligatorio. Cualquier Boolean variable. El resultado es un Boolean valor que indica si satisface o no string .pattern
string
Obligatorio. Cualquier String expresión.
pattern
Obligatorio. Cualquier String expresión que se ajuste a las convenciones de coincidencia de patrones descritas en "Comentarios".
Observaciones
Si el valor de string satisface el patrón contenido en pattern, result es True. Si la cadena no cumple el patrón, result es False. Si y stringpattern son cadenas vacías, el resultado es True.
Método de comparación
El comportamiento del Like operador depende de la instrucción Option Compare. El método de comparación de cadenas predeterminado para cada archivo de origen es Option Compare Binary.
Opciones de patrón
La coincidencia de patrones integrada proporciona una herramienta versátil para las comparaciones de cadenas. Las características de coincidencia de patrones permiten hacer coincidir cada carácter en string con un carácter específico, un carácter comodín, una lista de caracteres o un intervalo de caracteres. En la tabla siguiente se muestran los caracteres permitidos en pattern y su coincidencia.
Caracteres en pattern |
Coincide con string |
|---|---|
? |
Cualquier carácter único |
* |
Cero o más caracteres |
# |
Cualquier dígito único (0–9) |
[charlist] |
Cualquier carácter individual en charlist |
[!charlist] |
Cualquier carácter individual que no esté en charlist |
Listas de caracteres
Se puede usar un grupo de uno o varios caracteres (charlist) entre corchetes ([ ]) para buscar coincidencias con cualquier carácter único en string y puede incluir casi cualquier código de carácter, incluidos los dígitos.
Un signo de exclamación (!) al principio de charlist significa que se realiza una coincidencia si algún carácter excepto los caracteres de se encuentra en charliststring. Cuando se usa entre corchetes externos, el signo de exclamación coincide con sí mismo.
Caracteres especiales
Para que coincidan con los caracteres especiales entre corchetes ([), signo de interrogación (?), signo de número (#) y asterisco (*), encierrelos entre corchetes. No se puede usar el corchete derecho (]) dentro de un grupo para que coincida con sí mismo, pero se puede usar fuera de un grupo como carácter individual.
La secuencia [] de caracteres se considera una cadena de longitud cero (""). Sin embargo, no puede formar parte de una lista de caracteres entre corchetes. Si desea comprobar si una posición de string contiene uno de un grupo de caracteres o ningún carácter, puede usar Like dos veces. Para obtener un ejemplo, vea Cómo: Hacer coincidir una cadena con un patrón.
Intervalos de caracteres
Mediante el uso de un guión (–) para separar los límites inferior y superior del intervalo, charlist puede especificar un intervalo de caracteres. Por ejemplo, [A–Z] da como resultado una coincidencia si la posición de carácter correspondiente de string contiene cualquier carácter dentro del intervalo Ay [!H–L]Zda como resultado una coincidencia si la posición del carácter correspondiente contiene cualquier carácter fuera del intervalo H–L.
Al especificar un intervalo de caracteres, deben aparecer en orden ascendente, es decir, de menor a mayor. Por lo tanto, [A–Z] es un patrón válido, pero [Z–A] no lo es.
Intervalos de varios caracteres
Para especificar varios intervalos para la misma posición de carácter, colóquelos dentro de los mismos corchetes sin delimitadores. Por ejemplo, [A–CX–Z] da como resultado una coincidencia si la posición de carácter correspondiente de string contiene cualquier carácter dentro del intervalo A,C o el intervalo X–Z .
Uso del guión
Un guión (–) puede aparecer al principio (después de un signo de exclamación, si existe) o al final de charlist para que coincida con sí mismo. En cualquier otra ubicación, el guión identifica un intervalo de caracteres delimitado por los caracteres en cualquiera de los lados del guión.
Secuencia de intercalación
El significado de un intervalo especificado depende del orden de caracteres en tiempo de ejecución, determinado por Option Compare y la configuración regional del sistema en el que se ejecuta el código. Con , el intervalo [A–E] coincide con Option Compare BinaryA, B, C, Dy E. Con , [A–E] coincide Acon Option Compare Text, a, À, à, B, CDcdb, Ey .e El intervalo no coincide Ê o ê porque los caracteres acentuados se intercalan después de caracteres sin ordenación.
Caracteres digráficos
En algunos idiomas, hay caracteres alfabéticos que representan dos caracteres independientes. Por ejemplo, varios idiomas usan el carácter æ para representar los caracteres a y e cuando aparecen juntos. El Like operador reconoce que el carácter de digrafo único y los dos caracteres individuales son equivalentes.
Cuando se especifica un idioma que usa un carácter de digrafo en la configuración regional del sistema, una aparición del carácter de digrafo único en o patternstring coincide con la secuencia de dos caracteres equivalente en la otra cadena. Del mismo modo, un carácter digráfico entre pattern corchetes (por sí mismo, en una lista o en un intervalo) coincide con la secuencia de dos caracteres equivalente en string.
Sobrecarga
El Like operador se puede sobrecargar, lo que significa que una clase o estructura puede redefinir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. Si el código usa este operador en una clase o estructura de este tipo, asegúrese de comprender su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador.
Ejemplo
En este ejemplo se usa el Like operador para comparar cadenas con varios patrones. Los resultados entran en una Boolean variable que indica si cada cadena satisface el patrón.
Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
' and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
' beginning, an "a" at the end, and any number of characters in
' between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
' characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the
' set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
' an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
' followed by any character from the set "L" through "P", followed
' by any single-digit number, and end with any character NOT in
' the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
' "B", followed by any single character, followed by a "T", and end
' with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
' a "B", followed by any single character, followed by a "T", and
' end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"