(\d{2}\W?){3}
Introducción a las Expresiones Regulares
Todo lo que aprenderás sobre expresiones regulares
¿Qué son las expresiones regulares?
Aplicaciones de las expresiones regulares
Introducción al lenguaje de expresiones regulares
El lenguaje: caracteres, operadores, y construcciones
El caracter (.)
Las clases predefinidas y construidas
Los delimitadores: +, *, ?
Los contadores {1,4}
El caso de (?) como delimitador
Not (^), su uso y sus peligros
Reto: Filtrando letras en números telefónicos utilizando negaciones
Principio (^) y final de linea ($)
Uso práctico de Expresiones Regulares
Logs
Teléfonos
URLs
Mails
Localizaciones
Nombres(?) Reto
Usos avanzados en Expresiones Regulares
Búsqueda y reemplazo
Expresiones Regulares en lenguajes de programación
Uso de REGEX para descomponer querys GET
Explicación del Proyecto
Perl
PHP
Utilizando PHP en la práctica
Python
Java
Java aplicado
JavaScript
`grep` y `find` desde consola
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En el texto siguiente:
555658
56-58-11
56.58.11
56.78-98
65 09 87
76y87r98
Definir un patrón que haga match a todas las líneas excepto a la la última, la que tiene letras.
Es decir, seleccionar todas sin importar el caracter de separación, excepto cuando los números están separados entre sí por letras.
Aportes 541
Preguntas 10
(\d{2}\W?){3}
Jugando con la negación encontré que se puede hacer una doble negación que da evidentemente positivo, lo que significa que
[^\D]
Es lo mismo que…
\d
Selcciona cada linea cuando se separen por un signo y no por una letra
\d+[^aA-zZ\n]{2,6}
\d+
Todos los digitos.
[^aA-zZ\n]
Siguiente caracter No puede ser letra ni salto de linea
{2,6}
Selecicon aplica en secciones de de minimo 2 digitos maximo 6
Mi solución me salió así:
\d{2,}[^a-z]+
Esta es mi respuesta
(\d{2,2}[^a-zA-Z\n]?){3,3}
Me funciona porque tambien me ignora el enter entre lineas.
Mi solución:
.+[^y,r]\d\d
Me gusta verlo así para utilizar los contadores y la negación que vimos previamente.
([\d]{2,2}[^\w]?){3,3}
https://regex101.com/r/9iVJA5/6/ esta pagina esta buena 😄
Mi solución:
(.*[\W])
Expresión Regular: (\d\d[^a-z\n]?){3,3}
Me parece que lo de los paréntesis no lo había comentado Beto en lo que vamos del curso, pero mi intención era agrupar así que lo probé con llaves, con corchetes y por último por paréntesis y estos últimos fueron los que funcionaron.
Mi solución:
.+\d[^.\w]
Listo
[0-9]*[^\w][\.\s\-]?
La respuesta al reto es: \d\d\W?\d\d\W?\d\d[\n]
Otra posible solución al reto
(\d{2}[^a-z]?){3}
Mi solución (\d{2,2}[^a-zA-Z]?){3,3}
La respuesta al reto es: (\d\d[^a-zA-Z]?){2}\d\d
mi solución , usando la \W para negar y diciendo que puede o no tener para que pueda hacer match con la primera linea
(\d{2,2}\W?){3,3}
(\d{2}\W?)\d.* sin importar el múltiplo del ultimo dígito 😃
\d{2}\W?\d{2}\W?\d{2}\n
Solución al reto
[0-9\ \.\-][^a-z]
\d\d+[\W]
Mi expresion regular quedó asi
(\d{2}\W?){3,3}
(\d{2,2}\W?){3}
\d{2}([\.\-\s]?\d{2}){2}
Yo lo genere de esta manera , debido a que el ejercicio esta planteado para realizar uno o varios match y no indica que sea por una cantidad de digitos lo genere de esta manera , aunque muy probablemente existe una manera de realizar un match de todo el conjunto de los numeros
\d{2,}[\-\.\s]\w*?
\d{2}[^a-zA-Z]+
Mi solucion
(\d{2}[^a-zA-Z]?){3}
El patrón REGEX para seleccionar todas las líneas excepto la última que contiene letras sería:
^(\d+([\s.-])?)+$
Este patrón busca una o más secuencias de dígitos (\d+), seguidas opcionalmente de un separador que puede ser un espacio, un punto o un guión (- o .), todo esto encerrado en paréntesis. La secuencia completa se repite una o más veces ((…)+), y todo el patrón debe comenzar y terminar con una secuencia de dígitos, indicado por el ancla “^” y “$”. De esta manera, las líneas que contienen solo números con separadores válidos serán seleccionadas, mientras que la última línea que contiene letras no lo será.
Hello!
Creo que esta me da la respuesta al challenge:
[0-9]{2,2}[\W]?
Mi solución es la siguiente:
\d{2,}\W+
Esta seria la solucion al reto en Visual studio code:
\d.+\d{2}?.+
(\d\d)\W?(\d\d)\W?(\d\d)
El reto: (\d{2,2}[\.\- ]?){5}
y el anti reto 😄 (también incluyendo la de las letras): (\d{2,2}[.-a-z ]?){5}
\d{2,2}[^\w]?\d{2,2}[^\w]?\d{2,2}
Utilizando:
[A-z]
Sirve para referirse tanto a letras mayúsculas como a minúsculas.
Evitando así usar [a-zA-Z]
Esta es mi solución:
\d{2}[^A-z]+
Incluso excluyendo a las mayúsculas utilizando A-z, ya que me di cuenta que así también sirve para referirse tanto a mayúsculas como a minúsculas
Este es mi solución para este caso en específico
([^a-zA-Z \s]+\d{2,2}[-.\ ]?){3}
SPOILER 😄
(\d{2}[\W\n]){3}
El \W es equivalente a [^a-zA-Z0-9_], luego hay que añadir el \n para que coja el último par de dígitos.
\d\d[.\s-]?\d\d[.\s-]?\d\d Esta fue mi solución. Funcionó aunque no fue muy prolija. Después vi los comentarios y encontré soluciones mucho más elegantes de otros/as compañeros/as .
\d{2}\W?\d{2}\W?\d{2}
Esta es mi solución :
\d{2,}[.?|^\W]
^(\d{2,2}\W?){3,3}$
\d[-. ]?
Esta es mi soluciòn:
\d{2}[\.\W]{0,1}\d{2}[\.\W]{0,1}\d{2}[\.\W]{0,1}
Esta seria mi respuesta al reto:
\d{2}[\W]?\d{2}[\W]?\d{2}\n
\d{2}[^a-z]?\d{2}[^a-z]?\d{2}
Mi solucion:
([\d]{2}[^\w]?){3}
(\d{2,4}[^a-zA-Z]){3,5}
Mi solución: (\d{2,2}[.- ]?){3,3}
La hice de esta manera:
(\d+[^a-z]){3,}
me demoré pero valió el esfuerzo
\d+\W
(\d{2}[^\w\n]?){3}
Esta me funciono bien
Esta fue la solución que encontré al reto, un poco sencilla pero eficaz
\d\d\W?
\d{2}\W?\d{2}\W?\d{2}
\d+?[\-\.\n ]+
\d\d[^a-z]?\d\d[^a-z]?\d\d
(\d{2,2}\W?){3,3}
(\d{2}[^aA-zZ0-9]?){2}\d{2}
✔️
Lo primero que se me ocurrió fue
\d\d[ \.-]?\d\d[ \.-]?\d\d
Luego lo pensé un poco mas y me dio
\d{2}\W?\d{2}\W?\d{2}\W?
Y revisando comentarios me di cuenta que podía ponerle brackets a la expresión \d{2}\W? si estaba entre paréntesis
(\d{2}\W?){3}
^(\d{2}[-\. ]?){2}d{2}$
También les comparto una captura del funcionamiento. Utilizo la plataforma Regex101 para hacer mis pruebas.
^[5-6]{1,}[-.\s]?[0-9]{1,}[-.\s]?[0-9]{1,}
^\d[^yr]{5,7}
que empiese por un digito que no tenga ni “y,r” y de 5 a 7
mi respuesta
.+[^y,r]\d{2}
(\d{2,2}[^\w]?){3,3}
me funcionó de esta manera,
sólo niego que después de un grupo de dos dígitos exista una letra que pueda o no pueda existir y finalmente le digo que los cuente cada 3 matchs
Mi solución:
\d{2}[^aA-zZ]+\D?
Si queremos seleccionar todos los digitos excepto “y” y “r” (no es parte del reto) solo quitamos \D:
\d{2}[^a-zA-Z]?
Mi solución: \d{2,2}\W?\d{2,2}\W?\d{2,2}
Mi solución al problema 😃
[0-9]{2}[^a-z]
\d\d[^\da-z]\d\d[^\da-z]\d\d[^\da-z]\d\d[^\da-z]\d\d
MI resuesta al reto
(\d{2,2}[^\w]?){3,3}
\d{2,2} - dos digitos
[^\w] ?- todo lo que no es una palabra que quede o no estar
(…?){3,3} ->asi decimos q se repite 3 veces y es un match total
Reto cumplido, aqui mando mi respuesta:
+\\d{2}|\\d+"
(\d{2}[^a-zA-Z])+\d{2}|\d+
\d\d[\-\. ]?\d\d[\-\. ]?\d\d
Does the same as above
(\d\d[\-\. ]?){2,2}\d\d
#
\d\d([^a-z])?\d\d([^a-z])?\d\d
Does the same as above
(\d\d([^a-z])?){2,2}\d\d
\d\d\W?\d\d\W?\d\d
De entrada, lo pensé así:
\d\d\W?\d\d\W?\d\d
Ahora reviso los aportes de los compañeros.
(\d{2,2}[^\w]?){3,3}
/([\d]{2,2}[^\w]?){2,3}/gm
Con el siguiente codigo, pueden detectar no solo los ejercicios de esta clase, sino incluso los de anteriores clases, ya que recuerdo que Alberto borro unos numeros en un ejercicio ya que contenian mayor cantidad de caracteres agrupados y podian generar problemas. Esta es la adaptacion de un codigo que coloco mas abajo otra persona.
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
line = re.findall('\d*[^aA-zZ\n]{8,14}', fh)
print(line)
Hola, esta es mi respuesta.
\d+[^a-zA-Z\n]{2,6}
He estado buscando solución porque aún así deja que entren otros números en cadenas mayores a 2 y máximo 6 que no son números de teléfono.
Mi solución al reto:
(\d{2}[-.\s]?){3}
mi solucion con un or
([\d]{2}[-.\s][\d]{2}[-.\s][\d]{2}|[\d]{6})
Nada mas gratificante; cuando el aprendizaje se lleva a la practica:
\d+[0-9]\W
RTA = \d{2,2}[^a-zA-Z]+
^[0-9]{2}[^a-z].*$
Un poco larga, pero es útil :
\d\d[^a-z]\d\d[^a-z]\d?\d?
[0-9]{2,2}[^a-z]?[0-9]{2,2}[^a-z]?[0-9]{2,2}
Mis posibles soluciones
\d\d\W?\d\d\W?\d\d
[0-9]{2,6}[ \d.,-]+
Mi solución:
\d\d[-?.? ?]\d\d[-?.? ?]\d\d
mi respuesta:
\d\d[^a-z]?\d\d[^a-z]?\d\d
Buenas noches adjunto solución:
(\d{2,2}[\W]?){3,3}
(\d{2,2}[^\w]?){3,3}
(\d{2,2}[\W]*){1,2}(\d{2,2}[\W]*)
(\d{2,2}\W?){3}
la mejor solución segun lo enseñado hasta el momento según yo xD
explicit…
\d{2}[-. ]{0,1}[a-zA-Z]{0,0}\d{2}[-. ]{0,1}[a-zA-Z]{0,0}\d{2}[-. ]{0,1}[a-zA-Z]{0,0}
[^a-zA-Z]{6,8}\n
Quise hacerlo lo más simple posible.
<[^\D]*>
Mi solución:
([\d]{2}?[^\w]?){3}
Puede ser así?
\d\d\D?\W\d\d\D?\W\d\d
Algo así podría ser
\d{0,}[\-., ][\w]\d+
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.