Comparación de cadenas en base a un patrón. El operador Like

Comparación de cadenas en base a un patrón. El operador Like

El operador Like permite realizar una comparación entre dos cadenas, en base a un patrón establecido en una de ellas. El formato de uso se muestra en el Código fuente 93.

Resultado = Cadena Like Patrón

Código fuente 93

• Resultado. Valor lógico con el resultado de la comparación. Verdadero indica que hay una coincidencia de Cadena con Patrón. Falso indica que no se ha producido coincidencia de

Cadena con Patrón. • Cadena. Cadena de caracteres que se compara con el patrón de coincidencia. • Patrón. Cadena de caracteres en donde se especifican los caracteres especiales que sirven de

patrón de coincidencia respecto al valor de Cadena. La Tabla 7 muestra los caracteres y convenciones de uso establecidas por el lenguaje para el uso de patrones de comparación.

Programación con Visual Basic .NET © Grupo EIDOS

Carácter del patrón Coincidencia en la cadena a buscar

Cualquier único carácter

Varios caracteres o ninguno

Cualquier único número

[ListaCaracteres] Cualquier único carácter que se encuentre dentro

de la lista.

[!ListaCaracteres] Cualquier único carácter que no se encuentre dentro de la lista

Tabla 7. Caracteres patrón del operador Like.

Debemos tener en cuenta que los resultados obtenidos en expresiones que utilicen este operador estarán condicionadas por la configuración establecida mediante Option Compare. Revise el lector el apartado sobre comparación de cadenas en donde se describe esta instrucción.

Cuando utilicemos los corchetes para establecer una lista de caracteres a comparar, debemos emplear el guión ( - ) como separador de rangos. Si necesitamos que alguno de los caracteres patrón estén entre los que vamos a buscar, debemos encerrarlo entre corchetes. El Código fuente 94 muestra algunos ejemplos de uso de este operador.

' ejemplos con el operador Like Dim Resultado As Boolean ' -------------------------------- ' patrón ?

' devuelve True - El patrón coincide con la cadena ' al hacer la sustitución de un carácter Resultado = "HOLA" Like "HO?A"

' devuelve True - El patrón coincide con la cadena ' al hacer la sustitución de dos caracteres Resultado = "MONITOR" Like "MO?ITO?"

' devuelve False - El patrón no coincide con la cadena ' al hacer la sustitución de un carácter Resultado = "ROEDOR" Like "R?DEO" ' -------------------------------- ' patrón *

' devuelve True - El patrón coincide con la cadena ' al hacer la sustitución de varios caracteres con ' espacio en blanco a ambos lados Resultado = "La gran llanura" Like "La * llanura"

' devuelve True - El patrón coincide con la cadena ' al hacer la sustitución de dos grupos de caracteres Resultado = "La gran llanura" Like "La*llanu*"

' devuelve False - El patrón no coincide con la cadena ' al hacer la sustitución de un grupo de caracteres , ' puesto que en el patrón falta una palabra que sí ' se halla en la cadena

© Grupo EIDOS 13. Operadores del lenguaje

Resultado = "La gran llanura" Like "La llanu*" ' -------------------------------- ' patrón #

' devuelve True - El patrón coincide con la cadena ' al hacer la sustitución de dos números Resultado = "Ha ganado 128 millones" Like "Ha ganado ##8 millones"

' devuelve False - El patrón no coincide con la cadena, ' ya que en el patrón se especifican más dígitos de los ' existentes en la cadena Resultado = "Ha ganado 128 millones" Like "Ha ganado ###8 millones"

' devuelve False - El patrón no coincide con la cadena, ' ya que en el patrón se utilizan caracteres de sustitución ' de dígitos incorrectamente Resultado = "Ha ganado 128 millones" Like "Ha ganado 128 ##llones"

' -------------------------------- ' patrón [Lista]

' devuelve True - El carácter de la cadena se encuentra ' dentro del rango en la lista del patrón Resultado = "H" Like "[A-M]"

' devuelve False - El carácter de la cadena no se encuentra ' dentro del rango en la lista del patrón Resultado = "h" Like "[A-M]"

' devuelve True - El carácter de la cadena se encuentra ' dentro del rango en la lista del patrón Resultado = "h" Like "[a-m]"

' devuelve True - El carácter de la cadena no se encuentra ' dentro del rango en la lista del patrón Resultado = "D" Like "[!P-W]"

' devuelve False - El carácter de la cadena se encuentra ' dentro del rango en la lista del patrón Resultado = "R" Like "[!P-W]"

' -------------------------------- ' combinación de varios caracteres patrón

' devuelve True - Todas las sustituciones del patrón son correctas Resultado = "Faltan 48 horas para llegar a destino" Like _

"Fal* ## * para ll[a-g]gar ? des*"

' devuelve False - Las sustituciones de caracteres númericos son incorrectas Resultado = "Faltan 48 horas para llegar a destino" Like _

"Fal## * para ll[a-g]gar ? des*" ' -------------------------------- ' comparación utilizando caracteres patrón ' dentro de la expresión

' devuelve True - El carácter de cierre de interrogación ' se sustituye correctamente al encerrarse entre corchetes Resultado = "¿Ha llegado Ana?, bienvenida" Like "¿Ha*Ana[?], bienvenida" ' -------------------------------- ' comparación de dos cadenas vacías

' devuelve True Resultado = "" Like ""

Código fuente 94

Programación con Visual Basic .NET © Grupo EIDOS