0Pricing
Ruby Academy · Lección

Literales de expresiones regulares

Conceptos básicos de patrones

Literales de expresiones regulares es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué es una expresión regular?

Una expresión regular (regex) es un patrón que se utiliza para buscar coincidencias en texto. En Ruby, regex es un objeto de primera clase de la clase Regexp.

Puede usar regex para buscar, validar y extraer partes de cadenas.

  • Buscar una palabra, un dígito o un símbolo
  • Validar direcciones de correo electrónico y números de teléfono
  • Extraer fragmentos de texto desordenado
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))

Literales de expresiones regulares con barras

La forma más habitual de escribir una expresión regular en Ruby es entre dos barras diagonales: /pattern/.

Esto se denomina literal de expresión regular. Todo lo que aparece entre las barras es el patrón.

ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))

El operador de coincidencia =~

El operador =~ comprueba una cadena con una expresión regular. Devuelve el índice de la primera coincidencia o nil si no hay ninguna.

puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)

match? para obtener un valor booleano

Cuando solo necesita una respuesta afirmativa o negativa, use match?. Devuelve true o false y es más rápido porque no crea un objeto MatchData.

puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))

Clases de caracteres

Una clase de caracteres entre corchetes coincide con cualquier carácter de un conjunto.

  • [abc] coincide con a, b o c
  • [a-z] coincide con cualquier letra minúscula
  • [0-9] coincide con cualquier dígito
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))

Clases abreviadas

Ruby proporciona escapes abreviados para las clases de caracteres habituales:

  • \d: un dígito; \D: un carácter que no es un dígito
  • \w: un carácter de palabra (letras, dígitos o guion bajo)
  • \s: un espacio en blanco; \S: un carácter que no es un espacio en blanco
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))

El punto y los cuantificadores

El punto . coincide con cualquier carácter individual, excepto el salto de línea. Los cuantificadores controlan la repetición:

  • *: cero o más veces
  • +: una o más veces
  • ?: cero o una vez
  • {2,4}: entre 2 y 4 veces
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))

Alternancia con la barra vertical

La barra vertical | significa O. El patrón cat|dog coincide con cualquiera de las dos palabras.

Use paréntesis para agrupar una alternancia dentro de un patrón más grande.

pet = /cat|dog/
puts(pet.match?('I have a dog'))
puts(pet.match?('I have a fish'))
puts(/^(yes|no)$/.match?('yes'))

Indicador de coincidencia sin distinción entre mayúsculas y minúsculas

Añada el indicador i después de la barra de cierre para que la coincidencia no distinga entre mayúsculas y minúsculas.

Otros indicadores útiles son m (el punto coincide con saltos de línea) y x (modo extendido, ignora los espacios en blanco).

puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))

Crear expresiones regulares a partir de cadenas

Puede crear una expresión regular en tiempo de ejecución con Regexp.new. Use Regexp.escape para incluir de forma segura entradas del usuario que puedan contener caracteres especiales.

word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))

Introducción a los anclajes

Los anclajes coinciden con posiciones, no con caracteres:

  • ^: inicio de una línea
  • $: final de una línea
  • \A: inicio de la cadena
  • \z: final de la cadena

Estudiará estos elementos en profundidad más adelante.

puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))

Comprobación rápida

¿Qué devuelve el operador =~ cuando una expresión regular coincide con una cadena?

Repaso: literales de expresiones regulares

Ha aprendido los fundamentos de las expresiones regulares de Ruby:

  • Los literales de expresiones regulares se escriben entre /slashes/
  • =~ devuelve un índice y match? devuelve true/false
  • Clases de caracteres [ ] y abreviaturas \d \w \s
  • Cuantificadores * + ? {n,m} y alternancia |
  • El indicador i hace que la coincidencia no distinga entre mayúsculas y minúsculas

A continuación, capturará los fragmentos coincidentes.

puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))

Preguntas frecuentes

¿La lección «Literales de expresiones regulares» es gratis?

Sí — el texto completo de «Literales de expresiones regulares» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Literales de expresiones regulares»?

Conceptos básicos de patrones Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Literales de expresiones regulares»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Literales de expresiones regulares
  2. Coincidencias y capturas
  3. Sustitución
  4. Grupos con nombre y anclas
← Volver a Ruby Academy