Like (operador, Visual Basic)

Compara una cadena con un patrón.

Importante

El Like operador no se admite actualmente en proyectos de .NET Core .NET Standard.

Sintaxis

result = string Like pattern  

Partes

result
Necesario. Cualquier Boolean variable. El resultado es un valor que indica si satisface o Boolean no string pattern .

string
Obligatorio. Cualquier expresión String .

pattern
Obligatorio. Cualquier String expresión que se ajuste a las convenciones de coincidencia de patrones descritas en "Comentarios".

Comentarios

Si el valor de string satisface el patrón contenido en , es pattern result True . Si la cadena no satisface el patrón, result es False . Si y string pattern son cadenas vacías, el resultado es True .

Método de comparación

El comportamiento del operador Like 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 de con un carácter específico, un carácter comodín, una lista de caracteres o string un intervalo de caracteres. En la tabla siguiente se muestran los caracteres permitidos pattern en y lo que coinciden.

Caracteres en pattern Coincide en string
? Un carácter cualquiera
* 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 se encuentra en charlist

Listas de caracteres

Un grupo de uno o varios caracteres ( ) entre corchetes ( ) se puede usar para coincidir con cualquier carácter individual de y puede incluir casi cualquier código de charlist caracteres, incluidos [ ] string los dígitos.

Un signo de exclamación ( ) al principio de significa que se realiza una coincidencia si se encuentra algún carácter excepto los ! charlist caracteres de en charlist string . Cuando se usa entre corchetes externos, el signo de exclamación coincide a sí mismo.

Caracteres especiales

Para que coincidan los caracteres especiales entre corchetes (), signo de interrogación ( ), signo de número ( ) y [ ? asterisco # * (), escríbalos entre corchetes. El corchete derecho ( ) no se puede usar dentro de un grupo para coincidir con sí mismo, pero se puede usar fuera de un ] grupo como un 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 contiene uno de un grupo de caracteres o string ningún carácter, puede usar dos Like veces. Para obtener un ejemplo, vea Cómo: Hacer coincidir una cadena con un patrón.

Intervalos de caracteres

Mediante el uso de un guion ( ) para separar los límites inferior y superior del intervalo, charlist puede especificar un intervalo de caracteres. Por ejemplo, da como resultado una coincidencia si la posición de caracteres correspondiente en contiene algún carácter dentro del intervalo – y da como resultado una coincidencia si la posición de carácter correspondiente contiene algún carácter fuera del intervalo [A–Z] string : A Z [!H–L] H L .

Cuando se especifica un intervalo de caracteres, deben aparecer en orden ascendente, es decir, de menor a mayor. Por lo [A–Z] tanto, es un patrón válido, pero [Z–A] no lo es.

Varios intervalos de caracteres

Para especificar varios intervalos para la misma posición de caracteres, pónlos entre los mismos corchetes sin delimitadores. Por ejemplo, da como resultado una coincidencia si la posición de carácter correspondiente en contiene algún carácter dentro del intervalo [A–CX–Z] string o del intervalo A C X . Z

Uso del guion

Un guion ( ) puede aparecer al principio (después de un signo de exclamación, si lo hay) o al final de para que charlist coincida. En cualquier otra ubicación, el guion identifica un intervalo de caracteres delimitado por los caracteres de cada lado del guion.

Secuencia de intercalación

El significado de un intervalo especificado depende de la ordenación de caracteres en tiempo de ejecución, determinado por y el valor de configuración regional del sistema en el que se Option Compare ejecuta el código. Con Option Compare Binary , el intervalo coincide con , , , y [A–E] A B C D E . Con Option Compare Text , coincide con , , , , , , [A–E] , A , , , a y À à B b C c D d E e . El intervalo no coincide o porque los caracteres acentuados se intercalan después de los Ê ê caracteres sin acentos en el criterio de ordenación.

Caracteres de digrafía

En algunos idiomas, hay caracteres alfabéticos que representan dos caracteres independientes. Por ejemplo, varios idiomas usan el carácter æ para representar los caracteres y cuándo aparecen a e juntos. El Like operador reconoce que el carácter de un solo digráfico y los dos caracteres individuales son equivalentes.

Cuando se especifica un idioma que usa un carácter de digráfico en la configuración regional del sistema, una aparición del carácter de un solo digráfico en o coincide con la secuencia equivalente de dos caracteres de la pattern string otra cadena. De forma similar, un carácter de digráfico entre corchetes (por sí solo, en una lista o en un intervalo) coincide con la secuencia equivalente de pattern dos caracteres en string .

Sobrecarga

El Like operador se puede sobrecargar, lo que significa que una clase o estructura puede volver a definir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. Si el código usa este operador en este tipo de clase o estructura, asegúrese de que comprende su comportamiento redefinido. Para obtener más información, consulta Operator Procedures.

Ejemplo

En este ejemplo se Like usa el operador para comparar cadenas con varios patrones. Los resultados van a 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*"

Consulta también