No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
20 Hrs
25 Min
18 Seg
Curso de Expresiones Regulares

Curso de Expresiones Regulares

Alberto Alcocer (Beco)

Alberto Alcocer (Beco)

Nombres(?) Reto

18/29
Recursos

Aportes 231

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Solución: ^([A-Ú][a-ú]+\s?){1,5}$

  • Pedro Muñoz
  • Deyanira Molina
  • Brayatan Byron
  • Marantoni Núñez
  • Jenny Cortés
  • Ad9 hastra
  • Beethoven
  • J S Mastropiero
  • Éster Cervantes
^[A-ZÁÉÍÓÚ][a-záéíóú]{2,}\s[A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,}$

PD: Soy de Chile, acá los nombres imposibles existen.

Por si resulta útil, comparto un apunte con otro caso de uso de las expresiones que me ha parecido interesante.
Se trata de utilizar complementos del navegador para buscar dentro de páginas web utilizando expresiones regulares. Dejó aquí el enlace a uno de ellos: Chrome Regex Search
Se puede probar su funcionamiento buscando por el término expresiones regulares en Google y utilizando después esta expresión para buscar con el add-on instalado:

[E|e]xpresi[o?ó?]{1}n(es)?\s([R|e]egular)\1?

Así quedará resaltado el singular/plural de todas las apariciones del término Expresión Regular en la página de resultados o las web consultadas.

^([A-ZÁÉÍÓÚÑ]+[\w.]+ )+([A-ZÁÉÍÓÚÑ]+[\w.]+)$

No he usado \s porque incluye los saltos de línea, así que he puesto un espacio al final del primer paréntesis.
Mi solución incluye todos estos posibles nombres (recopilados de los posteos de los compañeros):

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Asunción Carballar
Constanza Muñoz
Manuel Andres García Márquez
Iris Graciani
Miguel Ignacio Rodríguez Álvarez
Heli Miguel Robles Álvarez
Verónika Sánchez Ascón
Jhony Ulloa Montalva
Mijahil Barra Li
Kevin David Saldaña Perez
Josie Nathaly Calle Valdiviezo
Paul Thomas Vargas Domínguez
Rodrigo Jiménez Gutiérrez
Jhon Beltrán
Jhon Fredy Beltrán
Jhon Fredy Beltrán León
Ándres Alberto
Juan Carlos Herrera Martínez
Andrés de Jesús Montes Rodríguez
Thais Armada de Medina
María Julia Herrera de Perez
Xi Ping Lu
Jhonnie B. Good Jr
Adriana Villalobos F.

Y no toma ni una línea de ejercicios pasados (dominios, mails, etc)

Pueden generar 10 nombres aleatorios latinos acá https://www.fantasynamegenerators.com/hispanic_names.php

Resumen / Apuntes / Notas

Dejo algunos 👉 apuntes en GitHub ✨ donde encontrarás ejemplos para entender las expresiones regulares sin tanto lío.

Si buscaramos el nombre de Musk

^[A-Z]\s?[Æ]\s?[A-Za-z]{1,}[-]{1,}[0-9]{1,}\s?Musk

X Æ A-12 Musk

El nombre del hijo de Elon Musk rompio paradigmas de las expresiones regulares =D

^([A-ZÁÉÍÓÚÑ][a-zzáéíóúñ]{1,}\s?){1,}

Mi solucion

^([A-Úa-ú]+\s?){2,}$

Alguien que me diga una expresion regular para encontrar un conjunto de palabras que empieza con una palabra y que termina en otra, alguien please?

Reto:
Para el siguiente conjunto de datos:
Ruben
Juan Pablo
Marcela
Anny
Camila
Rodrigo
Kevin Z
ert123
Ana Maria Gonzales
E3422

^[A-Z][a-z].+\s?

Me funcionó este expresión ^[a-záéíóúñ]{3,}\s[a-záéíóúñ]{3,}\s[a-záéíóúñ]{3,}$

A mi me funciono esta, sin embargo, asumi que no había tildes.

^[A-Z][a-z]{2,}+\s[A-Z]?[\.a-z]?.*$

Feliz día.

Luciana Rodríguez Castro
Santiago Martínez Gutiérrez
Salomé González Vargas
Matías García Ortíz
Isabella López Moreno
Samuel Gómez Jiménez
Mariana Hernández Rojas
Jerónimo Pérez Muñoz
Gabriela Sánchez Torres
Emmanuel Díaz Ramírez
Mariangel Ramírez Díaz
Emiliano Torres Sánchez
Valentina Muñoz Pérez
Maximiliano Rojas Hernández
Antonella Jiménez Gómez
Mathias Moreno López
Samantha Ortíz García
Sebastián Vargas González
Valeria Gutiérrez Martínez
Martín Castro Rodríguez
María José Rodríguez Castro
Dulce María Martínez Gutiérrez
Sara Sofía González Vargas
Luisa Fernanda García Ortíz
Sara Valentina
María Fernanda García Ortíz
Ana Sofía García Ortíz
Ana Lucía González Vargas
María Camila Ortíz García
María Alejandra Ramírez Díaz
Juan José Vargas González
Miguel Angel Muñoz Pérez
Juan Sebastián Ramírez Díaz
Juan David Díaz Ramírez
Samuel David Vargas González
Juan Pablo López Moreno
Andrés Felipe Muñoz Pérez
Juan Esteban García Ortíz
Juan Diego Muñoz Pérez
Angel David López Moreno
Ef3afga Easfgeas Eefe Enfle
Éf3afga Easfgeas Eefe Enfle
^[A-Z][a-zá-ú]{2,}\s?[A-Z]?[a-zá-ú]{2,}\s?[A-Z]?[a-zá-ú]{2,}\s?[A-Z]?[a-zá-ú]{2,}$
**My Expreción Regular para colombia:** `^[A-Z][a-z]{3,}\s?[A-Z]?[a-z]{0,}\s[A-Z][a-z]{3,}\s?[A-Z][a-z]*$`
nombres en colombia ```js ^([A-Z][a-z]{3,}\s?){3,4}$ ```
**Mi solución al reto:** ![](https://static.platzi.com/media/user_upload/image-df6dc41d-6b17-4707-8bc6-f2146364e6c5.jpg) ![]() `^[A-Z][a-z]{2,}\s?[A-Z][a-z]{2,}\s?[\Da-z]*$`
**Mi solución del reto** ```js ^[A-Z][a-z]{2,}\s?[A-Z][a-z]{2,}\s?[\Da-z]*$ ```![](https://static.platzi.com/media/user_upload/image-f771ffab-dda5-4df9-beb4-401330a67b8a.jpg)
^(\[A-ZÁ-Ú]\[a-zá-ú]\*\s?){2,4}$
Para los siguientes 5 casos: Rodrigo Jimenez Gutierrez Andres Garcia Duarte Luz del Carmen Chavez Perez Canelo de San Alvarez MacGregor Julian Alejandro Rodante Juez (\[A-Z]\[a-z]{1,}\s\*(\[a-z]\*)?(\[A-Z]\[a-z]\*)?\s\*){2,}
En esta respuesta que dare a continuacion esta debido a que en colombia pueden ocurrir que los nombres hayan dos o 1 nombre, dos o 1 apellido, entones es mas variado por ese caso. ^\[A-z]\[a-z]{2,}\s?\[A-z]\[a-z]{2,}\s?\[A-z]\[a-z]{2,}\s?\[\w{2,}]?\s?\[A-z]+\s?\w\*$
Para nombres con acento al empezar y después de la primera letra al empezar, nombre con dos apellidos, dos nombres y dos apellidos, así seria mi expresión regular (regex): Camilo Sarmiento Gálvez Alejandro Pliego Abasto Milagros Reyes Japón Samuel París Arrabal Manuel Andres García Márquez Axel Gálvez Velázquez Óscar Montreal Aparicio ^\[A-ZÁ-Ú]\[a-zá-ú]{2,}\s?\[A-Z]?\[a-zá-ú]{0,}\s?\[A-ZÁ-Ú]?\[a-zá-ú]{0,}\s?\[A-ZÁ-Ú]?\[a-zá-ú]{0,} notése que coloco acentuada en mayúscula de la Á-Ú y en minúsculas de á-ú.
donde se le sube la dificultad a los bots \[A-ZÀ-ú]\[a-zÀ-ú]{2,}\s\[A-ZÀ-ú]\[a-zÀ-ú]{2,} ![](https://static.platzi.com/media/user_upload/imagen-d72e3c88-5cc5-491b-82c0-aa66f218d4ad.jpg)

Mi propuesta para nombres “mexicanos”:

^([A-ZÁ-Ú]([a-zá-ú]?){1,}\s?\N){1,}$

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luci1ana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuel Andres García Márquez
Ñoño Alberto Galván
alberto Reyes Ñuña
Albeto Rangelñ peralta
A Alberta
C Galpdoa

Ruben
Jhon’s
agüero
Juan Pablo
Marcela
José
Anny
Camila
Rodrigo
rodrigo
Kevin Z
kevin Z
ert123
Ana Maria Gonzales
E3422
4E3422

^([A-Za-z]\S?\s?){2,50}$

✨ Filtrando Nombres y Apellidos

Usando JavaScript se filtran los nombres y apellidos de los usuarios teniendo en cuenta obviar los molestos saltos de línea \n.

const text = `
Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuél Andres García Márquez
`;
/* 
// Primera versión: 
const regex =
  /^[A-Za-zÀ-ÿ]+\s?[A-Za-zÀ-ÿ]+[\S? ]([A-Za-zÀ-ÿ]+)?[\S? ]([A-Za-zÀ-ÿ]+)/gm; 
*/
// Versión final: 
const regex = /([A-Za-zÀ-ÿ]+[\S? ?]?){1,4}/gm;
console.log(text.match(regex));

Obtenemos:

[
  'Camilo Sarmiento Gálvez',
  'Alejandro Pliego Abasto',
  'Milagros Reyes Japón',
  'Samuel París Arrabal',
  'Juan Pablo Tafalla',
  'Axel Gálvez Velázquez',
  'Óscar Montreal Aparicio',
  'Jacobo Pozo Tassis',
  'Guillermo Ordóñez Espiga',
  'Eduardo Pousa Curbelo',
  'Ivanna Bienvenida Kevin',
  'Ada Tasis López',
  'Luciana Sáenz García',
  'Florencia Sainz Márquz',
  'Catarina Cazalla Lombarda',
  'Paloma Gallo Perro',
  'Margarita Quesada Florez',
  'Vicente Fox Quesada',
  'Iris Graciani',
  'Asunción Carballar',
  'Constanza Muñoz',
  'Manuél Andres García Márquez'
]

Suponiendo que tiene una lista de nombres como la que pasaron en otro comentario.

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuel Andrés García Márquez
Oscar Barajas Tavares
Juan Pérez

Habría que cambiar en los contadores que empiece con 1 hacia infinito o usar el operador “+” para que te tome por ejemplo el nombre “Cayetano Ré”

^([A-Z|Á|É|Í|Ó|Ú|Ñ]+[a-z|á|é|í|ó|ú|ñ]{2,}[\s]?)+$

Mi solución:
^([A-Z][a-z]\s?)$

Pd: aun no pude incluir aquellos con guiones

Tengo un primo cuyo nombre tiene 2 letras, entonces ésta sería mi respuesta:

^([A-zÁ-ú]\s?){1,}[A-zÁ-ú]$ 

Para validar nombres se puede definir una expresión regular que primero detecte la primera letra como una mayuscula y luego el resto como minuscula más un espacio que pueda o no existir. De la siguiente manera: ^([A-Z\u00C0-\u017F][a-z\u00C0-\u017F]+\s?){1,4}$ Además los caractéres \u00C0-\u017F identifican los acentos.

Para que la expresión regular pueda encontrar los caractéres con acento se puede usar lo siguiente: \u00C0-\u017F de manera que se coloque dentro de la clase: [A-Z\u00C0-\u017F] o [a-z\u00C0-\u017F]

.
.
🚧🚧***SPOILER***🚧🚧
.
.
Así lo hice
.
.

^([A-Z][a-z]* ){1,}[A-Z][a-z]*$

Solución al reto

Para estos nombres:

Ruben
Juan Pablo
Marcela
Anny
Camila
Rodrigo
Kevin Z
ert123
Ana Maria Gonzales
E3422

Use esta expresión regular ^([a-zA-Z]+\s?(\d*)?){1,}$ 😁

Para los siguientes nombres:

Juan Fernando Pérez del Corral
Valentina Laverde de la Rosa
Óscar de la Renta
Sara Teresa Sánchez del Pinar
Efraín de las Casas Mejía
Julieta Ponce de León
Martín Elías de los Ríos Acosta
Gabriela de la Pava de la Torre
Matías de Greiff Rincón
Manuela del Pino Hincapié
Sebastián del Campo Yepes
Sofía del Río Arango
Ana María de la Peña Posada
Mónica Patricia de Ávalos Mendoza
oscar gutierrez
carlos45

use:

^[A-ZÁÉÍÓÚÑ][a-záéíóúñ].+[A-ZÁÉÍÓÚÑ][a-záéíóúñ].*$

con el resultado:

Compilando los nombres y apellidos que gentilmente han puesto en este chat, presento mi solución (parcial lamento yo), aquí lo tienen al final de la lista.

Ada Tasis López
Adriana Villalobos F.
Alejandro Pliego Abasto
Ándres Alberto
Andrés de Jesús Montes Rodríguez
Asunción Carballar
Axel Gálvez Velázquez
Camilo Sarmiento Gálvez
Catarina Cazalla Lombarda
Constanza Muñoz
Eduardo Pousa Curbelo
Florencia Sainz Márquz
Guillermo Ordóñez Espiga
Heli Miguel Robles Álvarez
Iris Graciani
Ivanna Bienvenida Kevin
Jacobo Pozo Tassis
Jhon Beltrán
Jhon Fredy Beltrán León
Jhonnie B. Good Jr
Jhony Ulloa Montalva
Josie Nathaly Calle Valdiviezo
Juan Carlos Herrera Martínez
Juan Pablo Tafalla
Kevin David Saldaña Perez
Luciana Sáenz García
Manuel Andres García Márquez
Margarita Quesada Florez
María Julia Herrera de Perez
Miguel Ignacio Rodríguez Álvarez
Mijahil Barra Li
Milagros Reyes Japón
Óscar Montreal Aparicio
Paloma Gallo Perro
Paul Thomas Vargas Domínguez
Rodrigo Jiménez Gutiérrez
Samuel París Arrabal
Thais Armada de Medina
Verónika Sánchez Ascón
Vicente Fox Quesada
Xi Ping Lu

^([a-zá-úA-ZÁ-Ú]{2,} ?)+(([A-Z].)+)? : Selecciona todos los nombres, menos ‘Jhonnie B. Good Jr’ que lo hace desde ‘J’ hasta ‘B.’

Aquí te proporciono otra expresión regular para validar nombres de personas, en este caso, permitiendo también la presencia de apellidos compuestos y caracteres acentuados.

import re
nombres_regex = r'^[A-Za-záéíóúÁÉÍÓÚñÑ]+([\s-][A-Za-záéíóúÁÉÍÓÚñÑ]+)*$'

nombre1 = "Juan Pérez Gómez"
nombre2 = "María De La Cruz González-Ruiz"
nombre3 = "José María Velázquez"

if re.match(nombres_regex, nombre1):
    print("El nombre 1 es válido")

if re.match(nombres_regex, nombre2):
    print("El nombre 2 es válido")

if re.match(nombres_regex, nombre3):
    print("El nombre 3 es válido")

La expresión regular busca cadenas que coincidan con el siguiente patrón:

  • La cadena comienza con una o más letras, incluyendo caracteres acentuados y la letra ñ ([A-Za-záéíóúÁÉÍÓÚñÑ]).

  • Luego, pueden aparecer cero o más repeticiones de un espacio en blanco (\s) o un guión (-) seguido de una o más letras ([A-Za-záéíóúÁÉÍÓÚñÑ]).

  • La expresión regular utiliza paréntesis () y el operador asterisco (*) para indicar que el patrón dentro de los paréntesis puede aparecer cero o más veces.

Esta expresión regular valida nombres que contienen letras, espacios en blanco, guiones y caracteres acentuados, permitiendo la presencia de apellidos compuestos. Si la cadena coincide con este patrón, se considera que el nombre es válido.

Solucion al reto usando VSCode:
^[A-Z][a-z]{1,}\s[A-Z][a-z]{1,}$
nota: Los nombres usados por su sevilleta no llevan acento

mi solución la cual creo abarcaría una gran cantidad de nombres en español ya que también cuenta con todos los caracteres especiales

^([A-ZÁÉÍÓÚ][a-záéíóúñ]{2,}\s?){2,4}$

¿Cómo voy? 🤔

^[A-Z][a-záéíó]{2,}\s[A-Z][a-záéíó]\s?[A-Za-záéíó]{0,}(\s?[A-Z]?[a-záéíó]{0,}){0,8}

Mi intento de resolver el Reto:

Expresion regular para Nombre:
^([a-zA-ZáéíóúÁÉÍÓÚÑñ] ?)+$
sin acentos:
^(\w{1,} ?)+$
^([a-zA-Z] ?)+$

Comparto mi solución al reto

^([A-ZÁÉÍÓÚÑ][a-záéíóúñ]+ ?){2,4}$

Los nombres no pueden tener digito

El muchacho de Colombia llamado 6 aparece

El profesor: 🙇‍♂️🙇‍♂️🙇‍♂️

Hola! Dejo mi solución. Funciono todo como queria, pero quedo un chorizo larguísimo al incluir la ñ, los acentos y los demás signos en las letras.
^[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]{1,1}[a-zñäëïöüáéíóúáéíóúâêîôûàèìòù]{2,11}\s[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]{1,1}[a-zñäëïöüáéíóúáéíóúâêîôûàèìòù]{2,11}(\s[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]{1,1}[a-zñäëïöüáéíóúáéíóúâêîôûàèìòù]{2,11})?(\s[A-ZÄËÏÖÜÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙ]{1,1}[a-zñäëïöüáéíóúáéíóúâêîôûàèìòù]{2,11})?$

^([A-ZÁ-Ú][a-zá-ú])\s([A-ZÁ-Ú][a-zá-ú])\s?([A-ZÁ-Ú][a-zá-ú]+)?\s?([A-ZÁ-Ú][a-zá-ú]+)?$

Mi solución:

^([A-ZÁ-Ú][a-zá-ú]{2,}\s?){2,}$
^([A-Z][a-z][A-Z]?[a-z]+ ?){1,2}

Mi solución: ^([A-ZÀ-úa-z]+ ?){2,4}$

Para nombres Colombianos, lo hice de esta manera
^([A-ZÁ-Ú][a-zá-ú]{1,}\s?){1,4}

Nombres:

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis

Mi Solucion:

([A-ZÁ-Ú][a-zá-ú]{3,}\s?){3,3}

Mi solución: ^[A-ZÓ][a-zó]{2,} ?[A-Z][a-zóíñá]{2,} ?[A-Z][a-zóíñá]* ?[A-Z][a-zóíñá]*$

Mi solución

^([A-Z][a-zá]{1,}\s?){2,}.*$
^([A-ZÀ-ú][a-zÀ-ú]{2,}\s?){2,4}

Mi salio algo complejo:
^([a-zA-ZÁÉÍÓÚÑáóúñíé]+[\w.]+\D ?)+([a-zA-ZÁÉÍÓÚÑáóúñíé]+[\w.]+\D)$

^([A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,25}\s?){1,6}$

Reto cumplido, solo agregue las tildes de las vocales y el resto era casi igual a lo que hizo el profe.
![](

Está es mi solución:

^([A-Ú][a-ú]+\s)+$

Mi solución

^[A-ZÓÁÉÍÚ][a-záéíóúñ]{2,}((\s[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,}){1,3})?$

pero viendo los comentarios de los compañeros aprendí que el rango de a-ú incluye tildes y la ñ ,
Solución mejorada

^[A-Ú][a-ú]{2,}((\s[A-Ú][a-ú]{2,}){1,3})?$

En un entorno real de python es un poco mas complicado el ejercicio, mas o menos habia dado con una solucion pero que igualmente contenia fallas, ya que los nombres los toma de una manera muy rara ver resultado final:

Camilo Sarmiento GÃ
lvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel GÃ
lvez VelÃ
zquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana SÃ
enz García
Florencia Sainz MÃ
rquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuel Andres García MÃ
rquez

Igualmente buscando resolucion a esto ya que habia nombres que no los tomaba se procedio a adaptar una solucion de stackoverflow, y la misma funciono relativamente bien:

import re

fh = open(r"C:\Users\Alfonso Zapata\jupyter\Cursos\Junio 2022\Curso de expresiones regulares - platzi\REGEX-master\liners.txt", "r").read()

fh

for line in re.findall(r"([A-ZÁ-ÚÑ][^\n0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{3,})\s([A-ZÁ-ÚÑ][^\n0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{3,})\s([A-ZÁ-ÚÑ][^\n0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{3,})\s([A-ZÁ-ÚÑ][^\n0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{3,})", fh):
    print(line)

Anexo capture de jupyterlabs

Les comparto la expresión que me sirvió para completar el reto de los nombres:

^\D[A-Za-zÁ-Úá-ú]+?.*

Cualquier observación es bienvenida. 😃

Mi solución al reto

^([A-ZÁÉÍÓÚ][a-záéíóú]+ [A-ZÁÉÍÓÚ][a-záéíóúñ]+) ? ([A-ZÁÉÍÓÚ][a-záéíóúñ]+)?

Esta RegEx funciona para dos nombres y un apellido, pero no sé como hacer incluir líneas con solo un nombre y un apellido, o los dos nombres y los dos apellidos en una sola regex

^([A-ZÁÉÍÓÚÑ][a-zzáéíóúñ]{1,}\s?){1,}
Mi solución

Hola.

Acá tengo mi aporte.

^[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,}\s[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,}(\s[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,})?(\s[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,})?

Saludos.

Esta es mi solución:

^([A-ZÁÉÍÚÓÑ][a-záéúíóñ]{2,} ?){2,}$
^[\w\sáéíóñ]{1,}$
^([A-ZÀ-ú][a-zà-ú]+\s?)+

Mi respuesta con varias listas:

Use esta Regex y muchos nombres coincidieron

^([\wéáíóúÁÉÍÓÚñÑ]+\s?){4,5}$

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar Constanza Muñoz
Manuel Andres García Márquez
Andres Ñanco
Rodrigo Jiménez Gutiérrez
Jhon Beltran
Rodrigo Jiménez Gutiérrez
Jhon Fredy Beltrán
Jhon Fredy Beltrán León
Ándres Alberto
Juan Carlos Herrera Martínez
Andrés de Jesús Montes Rodríguez
daniel morales sevillano
daniel alejandro morales sevillano
maria de los angeles popo
Nicole dayan capote vallejo

Asi lo solciones yo:

^[A-ZÑÁÉÍÓÚ][a-zñáéíóú]{3,}(\s?([A-ZÑÁÉÍÓÚ][a-zñáéíóú]{0,})?){1,5}$

Mi solución para Colombia y Latinoamerica

/^([A-ZÁ-Ú][a-ú]{2,}\s?){2,4}$/

Aqui a la solución que llegue:

<^([A-ZÀ-Ú][a-zà-ú]{2,}\s?){2,6}$> 

Solo me falta encontrar la manera que haga match con nombre compuestos como:

María de los Angeles Sánchez Carmona

^[A-ZÁÉÍÓÚ][\wáéíóúñ]+ - Nombres latinos

^([A-ZÁÉÍÓÚ][\wáéíóúñ]+\s?,?)+$ - Nombres separados por espacios

^.+\s?$ - Todos los nombres del mundo termina siendo cualquier string

Cosas incorrectas que los programadores asumimos acerca del nombre

Este reto es interesante para el curso, pero en la vida real para evitarse dolores de cabezas deben saber que muchas cosas que creen que son universales para los nombres son mentira y no aplican en todos los países del mundo.

  • un nombre no tiene caracteres especiales (mentira): X Æ A-Xii

  • Un nombre no tiene dígitos (mentira): Colombiano su nombre es “6”

  • Un nombre debe tener un mínimo de 2 o 3 caracteres (mentira): Li (como apellido) o aún más en su idioma original 李

Mientras más buscamos aceptar todos los nombres universalmente posibles de todos los idiomas que existen cada vez es más notorio que menos restricciones es quizás la unica opción que nos queda

Esta es mi respuesta.

^[A-ZÑÁÉÍÓÚ][a-zñáéíóú]{2,20}( [A-ZÑÁÉÍÓÚ][a-zñáéíóú]{2,20}){0,3}$

Hace match hasta con dos nombres y dos apellidos. El único problema es que también existen apellidos o nombres con “de”, o “del”, “de la”, etc. Si queremos considerar el nombre completo sería complicado ponerlo para que encaje en las situaciones correctas. Posiblemente para casos complejos sea mejor construir la lógica en el lenguaje de programación, pero con expresiones regulares se puede aplicar condicionales.
Aún no lo he hecho, pero encontré la información en regular-expresions.info. Si alguien le parece interesante puede echarle un vistazo. Tienen guías en muchos aspectos de expresiones regulares adicionales a lo que se ve en este curso también.

Mi aporte es :

^[A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,}\s?[A-ZÁÉÍÓÚ][a-záéíóúñ]{2,}\s?([A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,})?

Les comparto mi código:
^[A-ZÁ-Ú]?[a-zá-ú]{2,}?\s[A-ZÁ-Ú]?[a-zá-ú]{2,}?\s?[A-ZÁ-Ú]?[a-zá-ú]{2,}?\s?[A-ZÁ-Ú]?[a-zá-ú]{1,}?\s?$
Nombres usados:
Mauricio Dev,ia Castro
Laura Valentina Cruz Oyola
Jo0an Sebastian cruz Oyola
Mercedes Lasso Devia
Andrés David Gaviria Tovar
Yolanda Oy9la Vargas
Ángel Gómez Ángulo
Andrea Gutierrez
Nota: El doble espacio al final no deja hacer macth.

Asi el mio

^(([A-ZÁÉÍÓÚÑ][a-záéíóúñü]{2,}\s?)){1,5}$

My solution:
lista de nombres:

codigo: ^[A-ZÓ][a-zóá]{2,}\s?[A-ZÓ][a-zóáñí]{2,}\s?[A-ZÓ][a-zóáñí]{2,}.+

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassis
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuel Andres García Márquez

^[A-ZZÁÉÍÓÚa-záéíóúñ]{2,}\s?[A-ZZÁÉÍÓÚa-záéíóúñ]{2,}\s?[A-ZZÁÉÍÓÚa-záéíóúñ]{2,}\s?[A-ZZÁÉÍÓÚa-záéíóúñ]{2,}\s?[A-ZZÁÉÍÓÚa-záéíóúñ]{2,}

Lo solucioné así aunque estoy segura que se podría resumir pero bueno fue divertido hacerlo sola 😃

Este seria para grupos de máximo 2 nombres y dos apellidos

^([A-Z][a-záéíóú]{3,}\s?){2,4}$

Hola el mio quedo asi

^\u00f1?\u00d1?[A-z]{1,}\u00f1?[a-z]{1,}\,?\s\u00f1?\u00d1?[A-z]{1,}\u00f1?[a-z]{1,}\,?\s\u00f1?\u00d1?[A-z]{1,}\u00f1?\u00f3?[a-z]{1,}\,?\s$

la estructura permite, ñ Ñ ó, pero solo 3 veces, no encontré la manera o no le entendí XD, para poderlo poner mas veces y no tener que copiar y pegar, también acepta las , pero al mismo tiempo las selecciona

Comparto mi ejercicio 😄. Pensando en el caso de los apellidos, como lo menciona el profesor de tener la mayor probabilidad de solo obtener estos y no los nombres, se me ocurre la siguiente función:

[A-ZÀ-Ú][a-zà-ú]{1,10}\s[A-ZÀ-Ú][a-zà-ú]{1,10}\S$

Y en caso de solo querer tener 1 apellido, asumiendo que el usuario al menos agregará un nombre y un apellido, podría quedar así:

[A-ZÀ-Ú][a-zà-ú]{1,10}\S$

De esta forma no tomamos todo el nombre, sino solo los apellidos tentativamente. Como alternativas, creo que dentro del código se podría crear una condicional donde primero una regex detecte el número de palabras y dependiendo de este, se aplique una segunda regex para extraer nombres o apellidos de forma precisa. 😃

Aquí esta mi solución
([A-Z][a-zñ]{2,}\s?){2,}

Ruben
Juan Pablo
Marcela
Rodrigo
Belen
Camila

Mi solución

([A-Ñ][a-ñúó]{0,}\s?){4}

^[áéíóú A-z]{3,}$

https://regexr.com/6ahlh

Expression

^([A-ZÁÉÍÓÚÜÑ]([a-záéíóúüñ]+)? )((de )?(del )?(la )?(el )?[A-ZÁÉÍÓÚÜÑ]([a-záéíóúüñ]+)? ?){1,7}$

Texto

María de Jesús Macias López
Antonio Argüelles Roncero
Ana Maria Rios del Baño
Francisco Ladrón de Guevara
Arantzatu Goicoetxea Urdaíz
Maria de la O

Esta Regex esta para detectar un nombre (Nombre y apellido) o 3 nombres (Nombre y 2 apellidos) o los 2 nombres y los dos apellidos.

^[A-zÁÉÍÓÚ][a-záéíóúñ]{2,}\s[A-zÁÉÍÓÚ][a-záéíóúñ]{2,}\s?[A-zÁÉÍÓÚ]?[a-záéíóúñ]?\s?[A-zÁÉÍÓÚ]?[a-záéíóúñ]?$

Funciono con todos estos

Camilo Sarmiento Gálvez
Alejandro Pliego Abasto
Milagros Reyes Japón
Samuel París Arrabal
Juan Pablo Tafalla
Axel Gálvez Velázquez
Óscar Montreal Aparicio
Jacobo Pozo Tassisf
Guillermo Ordóñez Espiga
Eduardo Pousa Curbelo
Ivanna Bienvenida Kevin
Ada Tasis López
Luciana Sáenz García
Florencia Sainz Márquz
Catarina Cazalla Lombarda
Paloma Gallo Perro
Margarita Quesada Florez
Vicente Fox Quesada
Iris Graciani
Asunción Carballar
Constanza Muñoz
Manuel Andres García Márquez

Buena tarde amigos!

les dejo mi solucion, vi por ahi una en los comentarios que mediante codificacion UTF-* simplificaba los acentos, pero a mi gusto eso pierde legibilidad, de por si una expresion regular no es algo que se pueda leer tan sencillo y luego complicando su lectura.

Recordemos que reducir el codigo tiene que ir de la mano con la legibilidad!

^([A-zÑÁÉÍÓÚñáéíóú]{2,}[ ])+[A-zÑÁÉÍÓÚñáéíóú ]+$

Mi solución al reto de los nombres:

^[A-Z][a-z]{1,}(\s[A-Z][a-z]{1,})?(\s([a-z]{2,2}\s)?[A-Z][a-z]{1,})+$

Ejemplos de nombres válidos:

  • Ruben Blades
  • Juan Pablo Marmol
  • Camila Cabello
  • Gregorio Araoz de Lamadrid Fernandez
  • Gregorio Araoz Fernandez de Lamadrid
  • Juan Manuel Abal Medina
  • Zu Tamagotchi
  • Jorge Salvador Fernandez Lopez Gutierrez
  • Ajo Derse

Ejemplos de nombres NO válidos:

  • Marcela agachate
  • Rodrigo noya
  • belen Francese
  • Jorge
  • Leandro N Alem
  • A Joderse

Me agrado como me quedo asi para mexico:

^([A-Z]?[áÁ-úÚaA-zZ]{3,} ?){1,6}$

Un 6 al final solo como gesto de que salga alguien raro con varios nombres jaja

Oscar Andrés Ramos López
Paula Andrea Nuñez Giraldo
Sebastian Ramos Nuñez
Marco Aureliio Ramos Gomez
Juan Pablo Vaquez
aura Sepulveda Cortez
Maria Paz Ramos

^(([A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,}) +)+([A-ZÁÉÍÓÚÑ][a-záéíóñ]{2,})$

¿Què tal chicos? ¿còmo van? Deseaba hacer un aporte a los relativamente nuevos en el manejo de editores de código; Resulta que Visual Studio en la búsqueda de caracteres tiene las opciones de expresiones regulares y otras 2 más, de vez en cuando descarta** la opción “Aa”**, la cual es primordial para realizar nuestras búsquedas con Regex, ya que si no está activa, Visual prescindiría del reconocimiento de Mayúsculas o minúsculas.

Esta un poco larga

[A-ZÑÁÉÍÓÚ]{1}[a-zñáéíóú]{1,}\s([a-z]{1,3}\s)?([A-ZÑÁÉÍÓÚ]{1}\.\s)?([A-ZÑÁÉÍÓÚ]{1}[a-zñáéíóú]{1,}\s)?[A-ZÑÁÉÍÓÚ]{1}([a-z]{1}[A-ZÑÁÉÍÓÚ]{1})?[a-zñáéíóú]{1,}\s?([A-ZÑÁÉÍÓÚ]{1}[a-z}{1]\.\s|[A-ZÑÁÉÍÓÚ]{1}\.\s)?([A-ZÑÁÉÍÓÚ]{1}[a-zñáéíóú]{1,})?

Funciona para:
Andrés de Jesús Montes Rodríguez
Porter José Mckenzie Rios
Elmo R. Oneill R.
Maria del C. Montes
Maria del C. Montes Rios
Porter José Mckenzie R.
Porter J. Mckenzie R.

Me funciono con esta

^([A-Z]{1}[a-záéíóú]+)\s?+([A-Z]{1}[a-záéíóú]+)$

Mi solución es algo larga 😅😅… pero lo hace bastante bien 😎
Mi solución:

^[A-záéíóúñÁÉÍÓÚ]{1,1}[a-záéíóúñ]{2,12}\s([A-z]{1,1})+([a-záéíóúñ]{2,12})?\s?([A-z]{1,1}[a-záéíóúñ]{2,12})?\s?([A-z]{1,1}[a-záéíóúñ]{2,12})?\s?([A-z]{1,1}[a-záéíóúñ]{2,12})?$

Soluciona muchos nombres tipo:

Acá está mi solución:

^([A-Z][a-zíáéúóñ]+\s?){1,}\.?$

Funciona con todos estos datos:

Rosa María Martínez Suárez.

Ana María Casanova

María José González Botana de Solá.

María Eugenia Florez.

Clotilde Acosta.

María Cristina Lancelotti

Graciela Zabala.

Cristina De Giacomi.

Rodolfo Francisco Marabotto

Norberto Gurvich

Carlos Alberto Ficicchia Gigliotti

Marcela María Delorenzi

Juan Martín Rago

Fabián Alberto Gómez.

Ricardo Luis Amigorena

Gabriel Julio Fernández

María Cecilia Parrondo

Noemí Rosa Castro

Mauricio Goldfarb

Mariana Espósito

Alejandro Wiebe.

Carla Rivero

Patricia Ramírez

Luciano Giugno

Adrián Martínez

Rubén Castiñeiras

Mariela Anchipi

Rubén Enrique Brieva

Ezequiel Cwirkaluk

Bautista

Ignacio Manuel Saccomano

Horacio Jorge Arias

Alberto Francisco Pochulu

PD: Son nombres de famosos argentinos, les recomiendo hacer lo mismo con famosos de sus países porque son fáciles de buscar en grandes volúmenes y hay de todo tipo 😃

¡Funciona con el nombre del hijo de Elon Musk! X Æ A-12
Hola les dejo mi aporte, para evitar escribir todas las letras con acentos tanto mayúsculas como minúsculas encontré que se puede poner un rango de número de caracteres. Esto puede abarcar varios signos raros. Además de que podemos agrupar con paréntesis y decidir con delimitadores cuantas veces puede suceder ese patrón.

^([A-Z\u00C0-\u00FF]\s?[a-z\u00C0-\u00FF\.?]{1,}\s?){1,}.*$

¡Espero que les sirva!

Esta es mi solución:
[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+ [A-Za-zÁÉÍÓÚÑ][a-záéíóúñ]+(( [A-ZÁÉÍÓÚÑ][a-záéíóúñ]+){1,})?