Like (Operador)

Visual Basic VBLR

Like (Operador)

       

Se utiliza para comparar dos cadenas de caracteres.

Sintaxis

resultado = cadena Like patrón

La sintaxis del operador Like consta de las siguientes partes:

Parte Descripción
resultado Requerido; cualquier variable numérica.
cadena Requerido; cualquier expresión de cadena.
patrón Requerido; cualquier expresión de cadena que satisface las convenciones de coincidencia de patrones descritas en Comentarios.

Comentarios

Si cadena coincide con patrón, el resultado es True; si no coincide, el resultado es False. Si cadena o patrón es Null, el resultado es también Null.

El comportamiento del operador Like depende de la instrucción Option Compare. El método predeterminado de comparación de cadenas para cada módulo es Option Compare Binary.

Option Compare Binary da como resultado comparaciones de cadenas basadas en el orden derivado de las representaciones binarias internas de los caracteres. En Microsoft Windows, el orden depende de la página de código. En el siguiente ejemplo se ilustra un orden binaria típico:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text da como resultado comparaciones de cadenas basadas en el orden determinado por la configuración regional de su sistema. Los mismos caracteres del ejemplo anterior, ordenados con la opción Option Compare Text, aparecen en el siguiente orden:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

La función integrada de búsqueda de coincidencia de patrones ofrece una herramienta versátil para efectuar comparaciones de cadenas. Las características de esta función permiten el empleo de caracteres comodín, listas de caracteres o intervalos de caracteres en cualquier combinación para hallar coincidencias en cadenas. En la siguiente tabla se indican los caracteres que se pueden poner en patrón y con qué coinciden los mismos:

Caracteres en pattern Coincidencias en string
? Un carácter cualquiera.
* Cero o más caracteres.
# Un dígito cualquiera (0–9).
[listacaracteres] Un carácter cualquiera de listacaracteres.
[!listacaracteres] Un carácter cualquiera no incluido en listacaracteres.

Se puede utilizar un grupo de uno o más caracteres (listacaracteres) entre corchetes ([ ]) para establecer una coincidencia con un carácter cualquiera de cadena; el grupo puede incluir casi cualquier código de carácter, incluyendo dígitos.

Nota   Los caracteres especiales corchete de apertura ([), interrogación (?), signo de número (#) y asterisco (*) se pueden utilizar para establecer una coincidencia con sí mismos sólo si van entre corchetes. El corchete de cierre (]) no se puede utilizar en un grupo para establecer una coincidencia con sí mismo, pero sí se puede utilizar fuera de un grupo, como carácter independiente.

Puede especificar un intervalo de caracteres en listacaracteres colocando un guión () para separar los límites inferior y superior del intervalo. Por ejemplo, la secuencia [A–Z] en patrón permite hallar una coincidencia si en la posición correspondiente de cadena hay un carácter en mayúsculas cualquiera, comprendido en el intervalo de la A a la Z. Se pueden incluir múltiples intervalos entre corchetes, sin necesidad de delimitadores.

El significado del intervalo especificado depende de la ordenación de caracteres válida en tiempo de ejecución (determinado por Option Compare y la configuración regional del sistema dónde está ejecutándose el código). Si se utiliza el ejemplo con Option Compare Binary, en el intervalo [A–E] coinciden A, B y E. Con Option Compare Text, en [A–E] coinciden A, a, À, à, B, b, E, e. Ê y ê no se incluyen entre las coincidencias porque los caracteres acentuados se encuentran después de los no acentuados en el orden.

Otras reglas importantes para efectuar coincidencias de patrones son las siguientes:

  • Una exclamación (!) al comienzo de listacaracteres significa que hay coincidencias, dentro de la cadena para cualquier carácter excepto los incluidos en listacaracteres. Si no se encierra entre corchetes, la exclamación coincide consigo misma.

  • El guión () puede aparecer tanto al comienzo (después de la exclamación, si se emplea) o al final de listacaracteres para coincidir consigo mismo. En cualquier otro lugar, el guión sólo se puede utilizar para identificar un intervalo de caracteres.

  • Cuando se especifica un intervalo de caracteres, éstos deben aparecer en orden ascendente (de menor a mayor).[A-Z] es un patrón válido, pero [Z-A] no lo es.

  • La secuencia de caracteres [] se considera una cadena de caracteres de longitud cero ("").

El alfabeto de algunos idiomas incluye caracteres especiales que en realidad representan dos caracteres distintos. Por ejemplo, varios idiomas emplean el carácter "æ" para representar los caracteres "a" y "e" cuando aparecen juntos. El operador Like reconoce que el carácter especial único y los dos caracteres individuales son equivalentes.

Cuando se especifica en la configuración regional del sistema un idioma que utiliza uno de estos caracteres especiales, al ocurrir el carácter especial en patrón o cadena, coincide con la secuencia equivalente de 2 caracteres en la otra cadena. Igualmente, un único carácter especial en patrón incluido entre corchetes (en solitario, en una lista o en un intervalo) coincide con la secuencia de 2 caracteres equivalente en cadena.