0Pricing
Swift Academy · Lección

Literales regex y coincidencias

Haga coincidir patrones con el tipo Regex.

Literales regex y coincidencias es una lección gratuita de Swift 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 Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Regex en Swift

Swift 5.7+ incluye expresiones regulares nativas en la biblioteca estándar y Foundation. Puede escribir una expresión regular como un literal entre barras, como /\d+/, y el compilador la comprueba durante la compilación.

Un literal de regex

Un literal de regex produce un valor Regex. Su tipo captura lo que devuelve la coincidencia. El patrón más sencillo coincide con una secuencia fija de caracteres.

let pattern = /hello/
if "hello world".contains(pattern) {
    print("Found hello")
}

wholeMatch(of:)

wholeMatch(of:) solo tiene éxito si la cadena completa coincide con el patrón. Devuelve una coincidencia opcional o nil si la cadena completa no coincide.

let digits = /\d+/
if let m = "12345".wholeMatch(of: digits) {
    print("Whole match: \(m.output)")
} else {
    print("No whole match")
}

firstMatch(of:)

firstMatch(of:) recorre la cadena y devuelve el primer lugar en el que el patrón coincide dentro de ella.

let word = /\w+/
if let m = "  swift rocks".firstMatch(of: word) {
    print("First word: \(m.output)")
}

Acceder al rango de la coincidencia

Una coincidencia expone un range dentro de la cadena original, para que sepa exactamente dónde se produjo.

let text = "abc123def"
if let m = text.firstMatch(of: /\d+/) {
    print("Matched: \(m.output)")
    print("At: \(text[m.range])")
}

Clases de caracteres

Dentro de un patrón, \d coincide con un dígito, \w con un carácter de palabra y \s con un espacio en blanco. Los corchetes definen un conjunto personalizado, como [aeiou].

let vowel = /[aeiou]/
if let m = "sky".firstMatch(of: vowel) {
    print("Vowel: \(m.output)")
} else {
    print("No vowels found")
}

Cuantificadores

Los cuantificadores controlan la repetición: * significa cero o más, + uno o más, ? opcional y {n,m} una cantidad limitada.

let phone = /\d{3}-\d{4}/
print("555-1234".wholeMatch(of: phone) != nil)
print("12-34".wholeMatch(of: phone) != nil)

Anclas

Utilice ^ para anclar al principio y $ al final de una línea. Las anclas no consumen caracteres; indican una posición.

let startsWithCap = /^[A-Z]\w*/
if let m = "Swift".firstMatch(of: startsWithCap) {
    print("Matched: \(m.output)")
}

Coincidencias sin distinguir mayúsculas y minúsculas

Puede ignorar las mayúsculas y minúsculas añadiendo .ignoresCase() a un valor de regex, lo que resulta útil cuando no se puede predecir el uso de mayúsculas en la entrada.

let pattern = /swift/.ignoresCase()
print("I love SWIFT".contains(pattern))

Buscar coincidencias con matches(of:)

matches(of:) devuelve una colección con todas las coincidencias no superpuestas de la cadena, lo que permite iterar sobre ellas.

let nums = "a1 b22 c333"
for m in nums.matches(of: /\d+/) {
    print(m.output)
}

Validar la entrada

Un uso habitual es la validación: cree un patrón para el formato completo esperado y compruébelo con wholeMatch, que devuelve nil si no hay coincidencia.

func isZip(_ s: String) -> Bool {
    s.wholeMatch(of: /\d{5}/) != nil
}
print(isZip("90210"))
print(isZip("ABCDE"))

Comprobación rápida

¿Qué método solo tiene éxito cuando la cadena completa coincide?

Resumen

Ha aprendido a escribir literales de regex con barras y a buscar coincidencias mediante wholeMatch(of:), firstMatch(of:) y matches(of:). También ha visto clases de caracteres, cuantificadores, anclas y coincidencias sin distinguir mayúsculas y minúsculas. A continuación, extraerá datos de las coincidencias mediante grupos de captura.

Preguntas frecuentes

¿La lección «Literales regex y coincidencias» es gratis?

Sí — el texto completo de «Literales regex y coincidencias» 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 Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Literales regex y coincidencias»?

Haga coincidir patrones con el tipo Regex. Practicas Swift 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 Swift Academy?

No se requiere experiencia previa. Swift 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 regex y coincidencias»?

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 Swift Academy?

Sí. Cada lección de Swift 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 regex y coincidencias
  2. Grupos de captura
  3. DSL RegexBuilder
  4. Reemplazar y dividir texto
← Volver a Swift Academy