Expresiones Regulares en Ruby
Las expresiones regulares, también conocidas como regex, son patrones que se utilizan para buscar, modificar y manipular texto en Ruby. Son una herramienta poderosa para trabajar con datos textuales de forma eficiente y precisa.
Creación de expresiones regulares: Link to heading
- Se definen entre dos barras diagonales (/).
- Pueden contener una combinación de caracteres especiales y literales.
- Los caracteres especiales tienen un significado predefinido dentro de la expresión regular.
Caracteres básicos Link to heading
Expresión | significado |
---|---|
. | (Punto): Coincide con cualquier carácter individual (excepto nueva línea). |
[] | (Corchetes): Rango de caracteres. Ejemplo: [a-z] coincide con cualquier letra minúscula de la a a la z. |
\w | (Letra o número): Coincide con letras, números y guion bajo (_). |
\W | (No letra o número): Coincide con cualquier carácter que no sea letra, número ni guion bajo. |
\s | (Espacio en blanco): Coincide con espacios, tabulaciones, retornos de carro y saltos de línea. |
\S | (No espacio en blanco): Coincide con cualquier carácter que no sea un espacio en blanco. |
\d | (Dígito): Coincide con cualquier dígito del 0 al 9. |
\D | (No dígito): Coincide con cualquier carácter que no sea un dígito del 0 al 9. |
Metacaracteres especiales Link to heading
Expresión | significado |
---|---|
^ | (Inicio): Coincide con el inicio de la cadena. |
$ | (Fin): Coincide con el final de la cadena. |
\b | (Borde de palabra): Coincide con el inicio o el final de una palabra. |
* | (Cero o más): Repite el carácter que lo precede cero o más veces. |
+ | (Uno o más): Repite el carácter que lo precede una o más veces. |
? | (Cero o uno): Repite el carácter que lo precede cero o una vez. |
| | (Alternativa): Coincide con cualquiera de las expresiones que la preceden o la siguen. |
() | (Agrupación): Agrupa una expresión para tratarla como una sola unidad. |
{m,n} | (Repetición específica): Repite el carácter o grupo que le precede un mínimo de m veces y un máximo de n veces. |
Ejemplo: Link to heading
is_gmail_regex = /\w+@gmail.com/
Coincidencia de patrones: Link to heading
- Se puede usar el método match para verificar si un string coincide con una expresión regular.
- El método match devuelve un objeto MatchData si hay una coincidencia, o nil si no la hay.
Ejemplo: Link to heading
"juan@gmail.com".match(is_gmail_regex) # => <MatchData "juan@gmail.com">
"juan@gmail".match(is_gmail_regex) # => nil
Clases de caracteres: Link to heading
- Existen diferentes clases de caracteres para simplificar la escritura de expresiones regulares.
Ejemplo: Link to heading
number_regex = /\d+/
"21354".match(number_regex) # => <MatchData "21354">
"texto".match(number_regex) # => nil
Cuantificadores: Link to heading
- Se utilizan para indicar la cantidad de veces que un carácter o patrón debe repetirse.
Ejemplo: Link to heading
# busca una palabra seguido de un espacio y despues busca una letra
/\w+ \w/ =~ "Hola mundo" # => 0
# busca una palabra seguida de dos o mas espacios y luego una letra
/\w+ \s+\w/ =~ "Hola mundo" # => 0
Agrupación: Link to heading
- Se pueden usar paréntesis para agrupar partes de una expresión regular.
Ejemplo: Link to heading
# busca una fecha con formato dd/mm/yyyy
/\d{2}\/\d{2}\/\d{4}/ =~ "12/03/2024" # => 0
# busca una fecha con formato dd/mm/yyyy, donde dd y mm puede ser de uno o dos digitos
/\d{1,2}\/\d{1,2}\/\d{4}/ =~ "12/03/2024" # => 0
Operadores lógicos: Link to heading
- Se pueden usar operadores lógicos para combinar diferentes expresiones regulares.
Ejemplo: Link to heading
# Busca una direccion de email que puede ser de Gmail o Hotmail
/(gmail|hotmail)\.com/ =~ "juan@gmail.com" # => 0
/(gmail|hotmail)\.com/ =~ "juan@hotmail.com" # => 0
En resumen, las expresiones regulares son una herramienta poderosa para trabajar con texto en Ruby. Su flexibilidad y expresividad las convierten en una parte fundamental del lenguaje para tareas como la búsqueda y validación de datos, la extracción de información y la transformación de texto.
¡Sigue aprendiendo sobre las expresiones regulares para aprovechar al máximo su potencial en tus programas!
Consejos adicionales: Link to heading
- Puedes usar la herramienta rubular para probar y depurar tus expresiones regulares.
- Puedes usar la biblioteca rexml para trabajar con XML.
- Puedes usar la biblioteca nokogiri para trabajar con HTML.
¡Sigue experimentando con las expresiones regulares para crear programas más robustos y versátiles!
Aquí hay algunos ejemplos adicionales de cómo se pueden usar las expresiones regulares: Link to heading
- Validar la entrada de un usuario
- Extraer información de una página web
- Formatear texto
- Buscar y reemplazar texto
- Generar código
- Traducir idiomas
- Analizar datos
Las posibilidades son infinitas!