No tienes acceso a esta clase

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

Curso de Expresiones Regulares

Curso de Expresiones Regulares

Alberto Alcocer (Beco)

Alberto Alcocer (Beco)

Reto: Filtrando letras en números telefónicos utilizando negaciones

11/29
Recursos

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 596

Preguntas 12

Ordenar por:

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

(\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

Mi solución me salió así:

\d{2,}[^a-z]+

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

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}

Mi solución:
(.*[\W])

Otra posible solución al reto

(\d{2}[^a-z]?){3}

https://regex101.com/r/9iVJA5/6/ esta pagina esta buena 😄

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]

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}

((\d{2})(\[^a-zA-Z\n]?)){3}
(\d{2}\W?){3}
^\d+(\[\\-\\. ]\d+)\*$
Esta es mi solución propuesta `(\d[\W]?){6,6}` ![](https://static.platzi.com/media/user_upload/image-e00304de-1a80-4aeb-a68c-75b149efc829.jpg)
\d\*\[^a-z]
otra forma de hacerlo (\d{2,2}\[#.-]? ?){5,5}
\d{2}\[\W] Incluye a más de 3 pares de dígitos o para mayor precisión \d{2}\[\W]{1,1}
(\d{2,2}\[\W]?){3,3}
Solución. ```bash (\d{2}\[^a-zA-Z]?){3} ```
Aquí dejo mi solución al reto: (\d{2}\[^\w]){2,2} ![](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcjZpZWhndGR2M3JyMXdmbWN1aTJybzZxZ2V3ZGJpMTR1eDFtc215bSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/0Ox48lpQ27yszkJVgc/giphy.gif)
<https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcjZpZWhndGR2M3JyMXdmbWN1aTJybzZxZ2V3ZGJpMTR1eDFtc215bSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/0Ox48lpQ27yszkJVgc/giphy.gif>
Aquí dejo mi expresión regular que hice para resolver este reto: (\d{2}\[^\w]){2,2} ![]()
```js \d+[ .-]?\d+[ .-]?\d+ ```Esta quedó mejor
(?!.\*\[a-zA-Z])\[0-9 .-]+
# Reto: Filtrando letras en números telefónicos utilizando negaciones Mi solución: ```js [00-99]?. ```
Reto resuelto: ![](https://static.platzi.com/media/user_upload/image-5326e012-d87a-40ee-a146-48369c51b9b0.jpg) `\d\d[^a-z]?\d\d[^a-z]?\d\d`

Yo hice este para detectar numeros de donde vivo
)

^(\d{2,4}\W?){4,5}$

(\d{2}\[^a-z/i]?){3}
\b\[0-9a-fA-F]+\b|^(?!76y87r98$).\*$
Compañeros esta fue mi solución: ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-02-01%20134250-9fc387d9-bbf1-432c-b62e-00b55debe4d8.jpg)
Mi solucion Me salio asi \d{2,2}\[\\-\\. ]{0,1}\d{2,}\[\\-\\. ]{0,1}\d{2,}
Lo mas elegante que lo pude hacer: (\d{2}\[^\w]?){3}\d{2}
Correccion: Nada elegante, pero preciso: \[0-9]\[0-9]\[\\-\\. ]?\[0-9]\[0-9]\[\\-\\. ]?\[0-9]\[0-9]\[\\-\\. ]?\[0-9]\[0-9]
\[0-9]\[0-9]\[\\-\\. ]\[0-9]\[0-9]\[\\-\\. ]\[0-9]\[0-9]\[\\-\\. ]\[0-9]\[0-9]
Esta fue mi solucion para los siguientes numeros 56-58-11-12-48 56-58-11-12-48 56.58.11.12.45 56D58f11e12a45 \d{2}\[\D?\W?]\d{2}\[\D?\W?]\d{2}\[\D?\W?]\d{2}\[\D?\W?]\d{2}\[\D?\W?] Remplazar a: Match\n
\d\*\[^aA-zZ\n]{3,6}
(\d\*{^a-z]) {3} -> encuéntrame todos los digitos hasta que te topes con algo que NO SEAN LETRAS, házlo tres veces.
![](https://static.platzi.com/media/user_upload/image-1af89acd-1816-4fec-a345-8f057c2632a2.jpg)

\d{2}[\W]?\d{2}[\W]?\d{2}

Esta es mi solución: ```js ([0-9]{2}\W?){5} ```(\[0-9]{2}\W?){5} ![](https://static.platzi.com/media/user_upload/image-9340f72f-6843-4b8f-bbe1-76134189dbf8.jpg)

\d*\W
Aunque incialmente lo tenia asi
.*\W
Pero mejor para que tome los numeros use el \d

mi solucion:

\d{2,2}[^a-z^A-Z]?\d{2,2}[^a-z^A-Z]?\d{2,2}$

234567 match
89-44-72 match
32.61.71 match
59i27u93
45U89U66 match
56 84 49 match

(\d{2,2}\[^\w ]?){3} listo
\d{2}\[\W\_]?\d{2}\[\W\_]?\d{2} ![](https://static.platzi.com/media/user_upload/imagen-70c7bf83-a2a0-426a-83fe-446bca5d4c8a.jpg)
\d{2}\W?\d{4,4}\W?\d{4,4}
Aqui mi ejemplo: La version extensa: ```txt \d{2,2}[\W]?\d{2,2}[\W]?\d{2,2}[\W]? ```La version simplidicada: ```txt (\d{2,2}[\W]?){3,3} ```

\d{2,}[^a-zA-Z]+

Creo que está bien…creoooo \d{2,2}[ .-]?[^a-z]*\n

Mi solución:

(\d{2}[^a-zA-Z]?){3}
\d{2}\W?\d{2}\W?\d{2}

\d[. -]

Dejo mi aporte.

([0-9]{2,2}[^A-Za-z]?){3,3}

✨ Solución usando JS

const text = `
555658
56-58-11
56.58.11
563.78-8
6 09 587
76y87r98`; // Esto debe ser ignorado 🔥
const pattern = /\d[\d\W]{6,}\d\W/gm; //👈👀 Patrón
const numbers = text.match(pattern);
console.log(numbers);
console.log(numbers[0].replace('/\n/g', ' '));

Obtenemos:

[ '555658\n56-58-11\n56.58.11\n563.78-8\n6 09 587\n' ]
555658
56-58-11
56.58.11
563.78-8
6 09 587
\d{2}[^a-zA-Z]?\d{2}[^a-zA-Z]?\d{2}

\d+[\s.-]?\d+[\s.-]?\d+

^\d+[-.\s]?\d+[-.\s]?\d+$

Esta fue mi solución:

\d*[^a-zA-Z]*

Esta es la solución a la que llegué, sé que hay mejores soluciones y las estudiaré seguramente

(\d{2,2}[^a-z]?){5,5}

\d{2}[^a-z]\d{2}[^a-z]\d{2}

mi solu

(\d\d[^A-Za-z]?){4,4}

Solución al reto


Esta es mi solución al reto:

\d{2,}[\W]?

Esta es una solución al reto:
"\d{2,2}[^a-z]?\d{2,2}[^a-z]?\d{2,2}"

^[\d\s.-]+$

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