No tienes acceso a esta clase

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

Las clases predefinidas y construidas

6/29
Recursos

Las búsquedas en las expresiones regulares funcionan en múltiplos de la cantidad de caracteres que explícitamente indicamos.

Aportes 138

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Las búsquedas en las expresiones regulares funcionan en múltiplos de la cantidad de caracteres que explícitamente indicamos.

Regex Qué hace Descripción Inverso
. Character Cualquier caracter, selecciona cada uno de los caracteres
/d Digit Digits: (d minúscula) Encuentra todos los dígitos (número) de 0 a 9, es equivalente a poner [0-9]. \D
/w Word All word characters, Encuentra todos los caracteres que son parte de una palabra, tanto letras (minúsculas o mayúsculas) como números, es equivalente a poner [a-zA-Z0-9_]. \W
/s Space WhiteSpaces, Encuentra todos los espacios (los saltos de línea y tabuladores también son espacios). \S
[0-9] Specific Digit Encuentra todos los dígitos de 0 a 9.
[0-9a-zA-Z] Specific Word Character Encontrará todos los caracteres que estén del 0-9 o que sean letras mayúsculas o minúsculas (\w)
[a-zA-Z] nos encontrará solamente las letras, tanto mayúsculas como minúsculas.
\ Diagonal invertida Escapa los caracteres, permite que un carácter especial se muestre

Buscando hexadecimales de 6 dígitos y con # al inicio

[#][0-9a-fA-F]{6}

Para la gente de windows con teclado en español:

  • Alt+92 = \
  • Alt+91 = [
  • Alt+93 = ]
  • Alt+62 = >
  • Alt+60 = <
  • Alt+125 = }
  • Alt+123 = {

Resumen definitivo
Del . nacen 3 tipos diferentes de clases predefinidas por la sintaxis de expresiones regulares: El dígito, la palabra, los espacios

Aqui encontraran a detalle el vocabulario completo de expresiones regulares: https://es.wikipedia.org/wiki/Expresión_regular

Utilizamos “” , no usen el slash común(/) por que no les andará la búsqueda. para usarlo: Alt + 92

\d= Busca dígitos
\d\d\d = representa segmentos consecutivos segun la cantidad de \d que se coloquen
\s= busca espacios
\w= representa números y letras, exceptuando caracteres especiales
\t= representa el tabulador
.= representa el carácter “.”, (NO la clase)

[0- 9]= representa todos los números del 0 al 9
[a-z] equivale a d, pero sin representar del 0 al 9
[A-Z]= Busca todos los caracteres desde la a a la z solo en mayusculas.

{} =Esta expresión le dice al motor de búsqueda que encuentre dos dígitos contiguos. Utilizando esta fórmula podríamos convertir el ejemplo “^\d\d/\d\d/\d\d\d\d$” que servía para validar un formato de fecha en “^\d{2}/\d{2}/\d{4}$” para una mayor claridad en la lectura de la expresión.

Las Expresiones Regulares simplemente nos facilita resolver muchos problemas a la hora de programar, vale la pena estudiarlo.

\d <- encuentra los caracteres numéricos
\w <- caracteres de 0-9, a-z, A-Z y _
\s <- espacios, tabs y saltos de linea
[0-9] <- encuentra los dígitos incluidos en el rango
[a-zA-Z0-9_] <- encuentra los caracteres en el rango equivale al \w
[a-fA-F0-9_.] <- encuentra hexadecimales y ademas guion bajo y el punto
La búsqueda de hexadecimales de 6 dígitos seria:
[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]

Mi solución al reto:

^#[a-fA-F0-9]{3,6}

^ representa el comienzo de la linea.
# debe contener ese caracter.
[] rango de caracteres ascii de la a a la z en mayúsculas y minúsculas del 0 al 9.
{} longitud de la cadena de 3 a 6.

Y ahora que lo pienso mejor esta no es la mejor solución porque debería ser longitud de cadena de 3 y 6 y no un rango de 3 a 6.
😃

Reto: Hacer un sistema que encuentre códigos Hexadecimales

#[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]

Hay soluciones mas eficientes que esta, pero a la altura del curso esto es lo que se puede hacer.
Para una referencia de como hacer una solución más precisa que esta pueden ir AQUÍ.

Beco es un excelente profe!
Hasta el momento de todos los cursos que he tomado, explica claramente y de manera concisa, directo al punto.

**Clases predefinidas por la sintaxis de las expresiones regulares **

Clases predefinidas por la sintaxis de las expresiones regulares


  • Digito \d: Busca todos los dígitos
  • Palabra \w: Todo lo que puede ser una palabra, letras, dígitos y guiones bajo
  • Espacios y tab \s: Espacios en blanco

Clases construidas


Son aquellas que nosotros creamos con la ayuda de corchetes [], para hacerlo ponemos el rango de búsqueda entre corchetes. Ejemplos:

  • [a-z] Busca todos los caracteres de la a la z, pero solo minúsculas.
  • [a-zA-Z] Busca todos los caracteres de la a la z, incluye mayúsculas.
  • [0-9] Busca los números del 0-9
  • [4-5x-z] Busca los números y dígitos entre esos rangos (4 al 5 y x a la z)

Escapar: Le decimos a las expresiones regulares que no queremos usar la clase que representa un carácter si no su valor como el caso del . y se hace agregándole un slash (.)
Llaves {}: Le indicamos cuantos caracteres consecutivos debe de hacer match con nuestra cindición.

Muy buena clase instructor Alberto, se entiende completamente que hacen las clases predefinidas de expresiones regulares y cómo podemos construir las propias. Acá dejo la lista de las más destacables de esta lección:
 
• \d = Selecciona dígitos. Equivalente construida: [0-9]
• \w = Resalta caracteres. Equivalente: [a-zA-Z0-9]
• \s = Muestra los espacios en blanco. Equivalente: [ ]
• [ \.] = Busca el símbolo de punto
   
Por cierto, esto fue lo que paso cuando trate de buscar los saltos de línea (\n):
  

#([a-fA-F0-9]){6}```

(.) :busca caracteres
\d : busca digitos
\w: numeros y letras
\s : busca espacios

Esta expresión encuentra los hexadecimales
[a-fA-F0-9]+

Las búsquedas en las expresiones regulares funcionan en múltiplos de la cantidad de caracteres que explícitamente indicamos.
Las clases se identifican con un contra slash , y luego usar la clase: d, s, w.
Si queremos buscar digitos, números, cualquiera que sea, usamos la expresión “\d”. Esto seleccionará todos los números, e ignorará los demás carácteres.
Si quiero encontrar 3 números, usaré “\d\d\d”, esto encontrará a todos los múltiplos de 3.
Para buscar carácteres alfanuméricos y el guión bajo, se utiliza el \w. Para los acentos o las letras como la ñ el \w no funciona.
Para que después de cualquier carácter alfanumérico también reconozca un espacio, se utiliza el \w\s.
El espacio se reconoce con el \s.
Si quiero encontrar solo números, puedo utilizar [0-9] y es lo mismo que usar \d. Es más potente, además que la búsqueda se hace más sencilla, ya que no necesariamente puedo utilizar para buscar todos los números, sino también para definir cuáles, por ejemplo: [6-9]. Y no es únicamente con números, también con letras [a-z] y en cualquier rango [h-t].
Para poder encontrar al carácter “.”, no la clase operadora “.”, se utiliza “.”.
Para construir una clase entre diferentes rangos se utiliza entre corchetes, y sin espacio entre los rangos, por ejemplo [a-fA-T0-5_.]
#ABE045
Para buscar un código hexádecimal, utilizo la siguiente clase [#A-F0-9]{6}

<[#][a-fA-F0-9]{6}>

BECO es genial!!!Ojala me diera clases en la uni jaja

Código hexadecimal

/#[A-F0-9]{6}/i

Aquí esta mi reto:

Trate de factorizar lo más que pude
Lo que no entendí es que en los aportes colocan el numeral(#) pero no se en qué cambia, alguien me podría explicar porfa. También encontré que colocaban “\b”, me podrían decir que indico con eso
Pd: yo uso Visual Studio Code

5. Mis apuntes sobre: “Las clases predefinidas y construidas”

-El dígito -> \d
-La palabra -> \w --> “all word characters”, de la A a la Z mayúsculas o minúsculas,
los dígitos y el guión bajo (_), no incluye letras acentuadas.
-los espacios -> \s (blank spaces) [el espacio común, el espacio en tab]

  • 1. Ejemplo regex: El dígito
\d

-Explicación 1: Encuentra y selecciona todos los dígitos que existen en cada línea.
’
’

  • 2. Ejemplo regex: Tres números (dígitos) consecutivos
\d\d\d

-Explicación 2: Encuentra y selecciona toda vez que existan 3 dígitos consecutivos.
’
’

  • 3. Ejemplo regex: A to Z (minúsculas y mayúsculas) y _
\w

-Explicación 3: Encuentra y selecciona todos los caracteres que estén de la A a la Z,
en mayúscula o minúscula, incluidos dígitos y también el guión bajo (_).
’
’

  • 4. Ejemplo regex: Espacio en blanco (blank space)
\s

-Explicación 4: Encuentra y selecciona todos los espacios en blanco.
’
’

  • 5. Ejemplo regex: Encuentra 4 palabras consecutivas (caracteres)
\w\w\w\w

-Explicación 5: Encuentra y selecciona toda vez que existan 4 caracteres consecutivos,
que sean de la A a la Z, en mayúscula o minúscula, incluidos dígitos y también el guión bajo (_).
’
’

  • 6. Ejemplo regex: Encuentra todos los dígitos que estén del 0 al 9, es nuestra primera clase
[0-9]

-Explicación 6: Encuentra y selecciona todos los dígitos que estén del 0 al 9.
’
’

  • 7. Ejemplo regex: Encuentra todos los dígitos que estén del 6 al 9
[0-6]

-Explicación 7: Encuentra y selecciona todos los dígitos que estén del 0 al 6.
’
’

  • 8. Ejemplo regex: Encuentra todos los caracteres y dígitos y guión bajo de la manera propuesta
[a-zA-Z0-9_]

-Explicación 8: Encuentra y selecciona: Todos los caracteres de la a a la z, de la A a la Z,
los dígitos del 0 al 9, y también el guión bajo.
’
’

  • 9. Ejemplo regex: Encuentra los caracteres y dígitos y guión bajo y punto bajo ciertas condiciones
[a-fA-F0-9_\.]

-Explicación 9: Encuentra y selecciona: Todos los caracteres de la a a la f, de la A a la F,
los dígitos del 0 al 9, el guión bajo (_), y el caracter punto (.).
’
’

  • 10. Ejemplo regex: Encuentra los caracteres y dígitos y guión bajo y punto bajo ciertas condiciones
[a-fABCDF0-9_\.]

-Explicación 10: Encuentra y selecciona: Todos los caracteres de la a a la f, de la A a la F,
los dígitos del 0 al 9, el guión bajo (_), y el caracter punto (.). (Da el mismo resultado que
el ejemplo anterior).
’
’
'
Reto de la clase:
Encontrar los hexadecimales en el archivo propuesto.

Proupuesta:

#\w\w\w\w\w\w

A ver, las representaciones en hexadecimal son de 3 o 6 caracteres para el caso de CSS, iniciando con el símbolo de almohadilla, por lo que grupos menores a 3, grupos de 4 o 5, y grupos mayores de 6 deben ser descartados. Con esas condiciones, e investigando, la REGEX podría ser:
#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})
o
#([A-Fa-f\d]{6}|[A-Fa-f\d]{3})

Aunque también hay que recordar que en ciertos lenguajes de programación, las constantes de números hexadecimales empiezan con 0x, lo cual empieza a complicar las cosas… pero uno se divierte.

yo use esta

/^#?([a-F0-9]{6}|[a-F0-9]{3})$/```

^= the begining of the line
/=delimiters-required for regular expressions
#= number sign(s)
?=followed by zero or one 
{}=then exactly six
|=or
$=and finally the of the line

Para colores hexadecimales:

#[0-9a-fA-F]{6}

traduccion al lenguaje natural:

la cadena de caracteres debe iniciar con #, seguido de 6 caracteres que sean letras minusculas o mayusculas de la A a la F o números del 0 al 9

. selecciona todos los caracters
el \ con alt+92 en windows si no tienes teclado en ingles

\d selecciona estrictamente digitos
\w selecciona estrictamente letras y digitos
\s selecciona espacios

es facil recordar que d es por digits, w es por words, s es por spaces, osea su respectivo en ingles

el [] con alt+91 (para el [) y alt+93 (para el ]) en windows si no tienes teclado en ingles

[0-9] busca digitos de manera mas estricta que usando \d
[a-z] busca letras de manera estricta

se usa \ para escapar caracteres especiales como . como lo harias en javascript

las expresiones entre [] se denominan clases

Para mi funciona en la busqueda hexadecimal
[#a-fA-F0-9]{7}

#[a-f0-9]{6}

Esta es mi solución para colores hexadecimales

#[0-9A-Fa-f]{3,6}

La s es el caracter s, mientras que \s es para los espacios en blanco. La w es el caracter w, mientras que \w es para las letras, dígitos y _.
La d es el caracter d, mientras que \d es para los dígitos.
Sin embargo, el . es refiere a todos los caracteres, mientras que el . es el caracter punto.
Eso fue lo que más confuso me resultó. ¿Por qué no . se refiere a todos los caracteres y . se refiere al punto como tal?

Para encontrar el patron de hexadecimal con 3 o 6 caracteres se puede usar #[a-fA-F0-9]{3,6}

Buen reto el de la besuqueada de los hexadecimales tome una lista de colores en hexadecimal con caracteres y binarios y para solo buscar los hexadecimales construí esta clase [#a-fA-F0-9], hasta aquí podía encontrar los hexadecimales pero también encontraba palabras que tuvieran algún dígito o carácter dentro de mi clase y descubri las {} que ayudan a indicar que solo se deben repetir n cantidad de veces para ser considerados en la búsqueda y Vuuuaaala (voilà)!!!

[#a-fA-F0-9]{7}

De esta forma se puede expresar la búsqueda sin haber fijado diferencia entre mayúsculas y minúsculas #[0-9a-f]{6}

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("\d", fh):
#     print(line)

line = re.findall("[0-9a-fA-F]{6}", fh) 
print(line)

Unico detalle malo del curso

Usar algo tan basico como un editor de texto para explicar las expresiones regulares, porque no hacerlo usando un IDE (sea cual sea, en el idioma que sea) o alguna herramienta que permita hacerlo de una manera mas profesional, vengo del curso de Machine learning y es decepcionante que este curso lo hayan agregado como finalizacion del area principiante dando entrada al area intermedia de la carrera. La estandarizacion en algunos casos no es buena, ya que veo que muchos vienen del curso de linea de comandos, lo cual no esta a la par a de donde venimos los de machine learning, la recomendacion es crear un curso aparte con herramientas mas avanzadas o quitarlo e indicar que aprendamos regex por medios propios los que venimos de alla.

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("\d", fh):
#     print(line)

line = re.findall("\d", fh) 
print(line)

Mi solución al reto:

^#[a-fA-F0-9]{6}
1
12
123
1234
12345
12345678910
12345678910a
13453243
url: https://www.instagram.com/p/BXB4zsUlW5Z/?taken-by=beco.mx
url: http://instagram.com/p/blablablah
url: http://itam.mx/test
http://instagram.com/p/blablablah
csv1,csv2,csv3,csv4,csv5
Rodrigo Jiménez Gutiérrez
5556581111
56-58-11-12
302-345-9876
esto.es.un[email protected].com
dominio.com
[LOG ENTRY] [ERROR] The system is unstable
[LOG ENTRY] [WARN] The system may be down
[LOG ENTRY] [LOG] Everything is OK
[LOG ENTRY] [LOG] [user:@beco] Logged in
[LOG ENTRY] [LOG] [user:@beco] Clicked here
[LOG ENTRY] [LOG] [user:@beco] Rated the app
[LOG ENTRY] [LOG] [user:@beco] Logged out```

Para encontrar los tipos de hexadecimales: [0-9A-Fa-f]

Usando el código hexadecimals para ascII: [\u0030-\u0039\u0041-\u0046\u0061-\u0066]

Le envío mi solución del reto:
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]

NOTA: \. es para referirse al caracter . y /. es para referirse a la clase .

Esto es para CSS y funciona bien, pero espero ver cómo se puede mejorar en la próxima clase, solo puse un #antes y cree la clase y la repetí, pero dice el maestro que se puede hacer sin repetir multiples veces la clase
#[a-fA-F1-9][a-fA-F1-9][a-fA-F1-9][a-fA-F1-9][a-fA-F1-9][a-fA-F1-9]

Encontrar hexadecimales

[a-fA-F0-9]{3,6}

Este curso es increíble. El profesor es BUENÍSIMO.

Mi solución al reto de busqueda Hexadecimal

^[a-zA-Z0-9]{3,6}$

Mi aporte con la resolución para encontrar decimales, si hay alguna otra solución más eficiente, no duden en comentar.

/#[a-f0-9]{3}([a-f0-9]{3})?/gi
  • Primero, coloco el michi (#) porque todo hexadecimal comienza con ese caracter.
  • Coloco la fracción [a-f0-9]{3}, la cual significa que busque letras desde la A a la F y números del 0 al 9. Después tiene {3}, que significa que se repite 3 veces. Ya que algunos hexadecimales he visto que lo escriben como #fff o #ffffff.
  • Coloco ([a-f0-9]{3})? que significa lo mismo, la diferencia que lleva paréntesis para agruparlo y colocar al final el signo de interrogración (?), lo cual significa que es opcional.
  • Por último, lleva las letras gi, la g significa global, y la i nos ayuda para el case-sensitive.

.
Ese sería mi aporte, muchas gracias 😄

Imagina que quieres buscar las direcciones de memoria ( printf("%p",puntero) ) que genera una salida de puntero en C.
Tipo…

Reserva de memoria(en &n=0x7ffea9beb0c0) 
  el nodo 0 con dir 0x555d9d17c2b0                                                   
   &n->next=0x555d9d17c2b8                                       
  n=0x555d9d17c2b0  &n=0x7ffea9beb0f0   

Solucion:
/0x[0-9a-fA-F]*
" 0x " : caracteres de inicio de la cadena
" [0-9a-fA-F] " : rango de caracteres esperados después del inicio
" * " Repite el rango (sin " * " solo buscaría el primer carácter contiguo a " 0x " )

reto hexadecimales encontrados
link

Siguiendo hasta lo que hemos visto en la clase, seria de esta manera, se que se pueden indicar las repteciiones con {n,n} pero aun no llegamos a eso

[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]

Quedo izi pizi


[a-fA-F1-9]{6}

Más adelante en el curso, espero aprender a hacer que antes de esta expresión, pueda ser un # o nada. Ojala encuentre la forma 😄

Mi solucion quedo de la siguiente forma:

[#][0-9a-fA-F]{6}

#: el caracter con el que inicia
0-9: el rango de numeros
a-f A-F: las letras que puede tener
6: la longitud de caracteres

Mi pequeña aportación
/[a-fA-F0-9]{6}

Tengo una duda compañeros y profe, no se si sea observación o corrección. Si usamos el carácter carácter ‘.’ (cualquier carácter) dentro de una función [] no es necesario escaparlo como lo hace el profe en el ejemplo.
Es decir así: [a-fABCDEF0-5_.]
o así: [.]
Recupera todos los ‘.’

Un pequeño ejemplo buscando el código hexadecimal junto con el carácter # 🐗🐗

Miren este “chorizo”
[a-zA-Z_{}0-9 [.]😕/[email protected],-ñ]

😛😛😛

Si bien los colores con el formato #fff se pueden interpretar, al final el formato interpretado es de #ffffff por eso hice el reto de esta forma #[0-9A-Fa-f]{6}[\n\s;]

[a-fA-F0-9]

Las expresiones regulares son escencialmente las mismas en los distintos lenguajes de programación. Aunque pueden haber algunas diferencias.

  • \d -> Encuentra todos los dígitos
  • [0-9] Es más potente para buscar dígitos (podemos específicar entre qué números buscar)
  • \w -> “All word characters”, de la aA a la zZ y el guión bajo
  • \s -> Encuentra todos los espacios

Hagamos algo más complejo y poderoso: [a-zA-Z0-9_\.] -> Encuentra letras en mayúsculas y minúsculas, además, números y también el caracter punto. De la ‘a’ a la ‘z’, en mayúsculas y minúsculas.

Expresión regular para encontrar valores hexadecimales: #[a-fA-F0-9]{3,6} -> Empieza con ‘#’, tiene letras de la a a la f en mayúsculas y minúsuclas, del 0 al 9 y entre 3 y 6 dígitos.

Mi solución:

^#[0-9a-fA-F]{3,6}$

Lo malo es que toma también los de 4 y 5 dígitos, no solo los de 3 y 6

Les paso por acá una combinaciòn de palabras con hexadecimales para que puedan hacer la practica en sus editores.

#FFFFFF #FFF
AZUR #F0FFFF #FFFFFF
CREMA #F5FFFA #FFFFFF
NIEVE #FFFAFA #FFFFFF
MARFIL #FFFFF0 #FFFFFF
BLANCO FANTASMA #F8F8FF #FFFFFF
BLANCO FLORAL #FFFAF0 #FFFFFF
AZUL ALICIA #F0F8FF #FFFFFF
CIAN CLARO #E0FFFF #CCFFFF
MELÓN VERDE #F0FFF0#FFFFFF #FFFFFF
AZUR #F0FFFF #FFFFFF
CREMA #F5FFFA #FFFFFF
NIEVE #FFFAFA #FFFFFF
MARFIL #FFFFF0 #FFFFFF
BLANCO FANTASMA #F8F8FF #FFFFFF
BLANCO FLORAL #FFFAF0 #FFFFFF
AZUL ALICIA #F0F8FF #FFFFFF
CIAN CLARO #E0FFFF #CCFFFF
MELÓN VERDE #F0FFF0
#DDA0DD #CC99CC
GRIS #BEBEBE #CCCCCC
VERDE CLARO #90EE90 #99FF99
VIOLETA #EE82EE #FF99FF
AMARILLO #FFFF00 #FFFF00
TURQUESA #40E0D0 #33CCCC
MADERA FORNIDA #DEB887 #CCCC99
AMARILLO VERDE #ADFF2F #99FF33
BRONCEADO #D2B48C #CCCC99
TURQUESA MEDIO #48D1CC #33CCCC
SALMÓN CLARO #FFA07A #FF9966
AGUAMARINA MEDIO #66CDAA #66CC99
GRIS OSCURO #A9A9A9 #999999
ORQUÍDEA #DA70D6 #CC66CC
VERDE MAR INTENSO #8FBC8F #99CC99
AZUL CIELO INTENSO #00BFFF #00CCFF
MARRÓN ARENA #F4A460 #FF9966
DORADO #FFD700 #FFCC00
VERDE PRIMAVERA MEDIO #00FA9A #00FF99
CAQUI OSCURO #BDB76B #CCCC66
ACIANO AZUL #6495ED #6699FF
ROSA CALIENTE #FF69B4 #FF66CC
SALMÓN OSCURO #E9967A #FF9966
TURQUESA OSCURO #00CED1 #00CCCC
VERDE PRIMAVERA #00FF7F #00FF66

Mi respuesta al reto:[#][a-fA-F0-9]{3,6}

Algo rarísimo es que en la consola de ubuntu si jala cuando yo hago el \w pero no cuando hago el \d, alguien sabe porque?

/////////////////////////////////////////////////////////////////////////////////
///////////////////// Las clases predefinidas y construidas /////////////////////
/////////////////////////////////////////////////////////////////////////////////

// Dígitos: '\d'

var e = /\d/; // Me encuentra todos los dígitos individualmente

var e = /\d\d\d/; // Me encuentra 3 dígitos juntos

var e = /[0-9]/ // Esto es equivalente a '/d' porque 0-9 son todos los dígitos

var e = /[2-8]/ // Me encuentra todos lso dígitos del 2 al 8

var e = /\D/; // Me encuentra todo lo contrario a un dígito

// Palabras: '\w', Incluyen los dígitos, letras minúsculas y mayúsculas y guien bajo '_' excepto los acentos

var e = /\w/; // Me encuentra todo lo que pueda ser parte de una palabra

var e = /\w\w\w/; // Me encuentra 3 caracteres juntos parte de una palabra

var e = /[a-zA-Z0-9_]/; // Esto es equvalente a '\w'

var e = /[a-z]/; // Me encuentra todas la letras minúsculas

var e = /[A-Z]/; // Me encuentra todas la letras mayúsculas

var e = /[e-m]/; // Me encuentra todas la letras desde la 'e' hasta la 'm'

var e = /\W/; // Me encuentra todo lo contrario a lo que pueda ser parte de una palabra
var e = /[a-tA-F0-5\.]/; // Aquí agregamos '\.' para decir que también seleccionaos el caracter '.'
// 'A-F' es equivalente a 'ABCDEFG' pero si queremos ser específicos con ciertas letras como por ejemplo:'ACFGY'
// '2-5' es equivalente a '2345' pero si queremos ser específicos con ciertos números como por ejemplo: '1587'

// Espacios: '\s'

var e = /\s/; //Me encuentra todos los espacios individualmente

var e = /\S/; // Me encuentra todo lo contrario a un espacio

La expresion para los hexadecimales seria:

^[0-9a-fA-F]{6}```


Quisiera compartir tambien un link para el que le interese investigar un poquito mas sobre las expresiones regulares, lo encontre muy interesante: https://baulderasec.wordpress.com/desde-la-consola/shell-en-unixlinux-sh-ksh-bash/6-expresiones-regulares/

Codigo en java

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package strings;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
*

  • @author Sem-6-INGENIERIAINDU
    */
    public class Strings {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      String mensaje = “Hola como te encuentras sofia 22”;
      Pattern pattern = Pattern.compile("\d");
      Matcher matcher = pattern.matcher(mensaje);
      while (matcher.find()) {
      System.out.println("° número: " + matcher.group());
      }

    }

}

Entiendo que los hexadecimales tienen dígitos, letras mayúsculas y minúsculas, ¿cómo hago la clase para que evalúe uno dígito y letras?

Pensaría en esto [a-zA-Z0-9] pero no sé cómo decirle que son solo 6.

Me gustaría aclarar que usamos no el “slash” -> “/” que habitualmente esta en la parte superior de todo teclado numérico, se usa es el “Back-Slash” que es para el otro lado “\” este, en un sistema Windows lo sacamos con “Alt+92” y en Unix “AltGr + ?” normalmente esta encima de la letra “p” el “?”.
Espero este bien explicado ekiZde, Saludos desde Colombia :3

\u para ubicar las letras

[0-9a-fA-F]{6}

Mi solucion es mas corta

#\w{3,6}

Mi solucion es mas corta

#\w{3,6}

Usando \s , mientras que en VSCode muestra 6 “matches”:

en Sublime Text 2 muestra 20 “matches”:

“Baia, baia”

Solucion al reto

#[a-fA-F0-9]{6}

Mi solucion:

#[a-zA-Z0-9]{6}```

Así quedaría de una manera más estricta para hexadecimal 😄

^[a-fA-F0-9]{6}$

mi solución

(#[\da-fA-F]{3}|#[\da-fA-F]{6})

Dejo aquí mi solución, la cual no es muy distinta a las demás, sin embargo, para las mayúsculas se pueden indicar de esta forma aA-zZ

#[aA-fF0-9]{3,6}

Las funciones encuentra en múltiplos de la cantidad las cosas que estamos buscando.
[a-fA-F0-9] expresion de hexadecimales.

Mi propuesta bastante rustica seria la siguiente:
#[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]

Que interesante buscar el caracter “.”, solo con .

Mis apuntes:

Las clases construidas y predefinidas

Del punto (.) nacen tres diferentes tipos de clases predefinidas por la sintaxis de expresiones regulares: el dígito, la palabra, los espacios.

NOTA: . es para referirse al caracter . y /. es para referirse a la clase .

NOTA: . es para referirse al caracter . y /. es para referirse a la clase .

<NOTA: \. es para referirse al caracter . y /. es para referirse a la clase .>

Nunca creí que fuera tan fácil, jejeje

En lo poco que he visto me ha parecido muy interesantes, explica muy bien y tiene dominio del tema.

Qué rifado profe😁!!!

Tal vez… ([a-fA-F0-9]{2}(-)?){6}

https://regex101.com/

Trabajo con colores aplicados a alimentos y me ha tocado muchas veces pasar un color en formato CIELab a otro hexadecimal para saber exactamente con que color me enfrento.
En esta aplicación se utiliza este formato para los hexadecimales:

#000000 -> color negro
#FF00FF -> color magenta
#0000FF -> color azul
#FFFF00 -> color amarillo

Mi propuesta al reto es la siguiente:

((#)?0-9a-fA-F?){6}

Fui hasta este link https://www.ascii-code.com/ y me copié los valores ASCII en HTML. Para seleccionar esos valores la ReGex necesaria es: [&][#][0-9a-f][0-9a-f][0-9a-f]

Las búsquedas en las expresiones regulares funcionan en múltiplos de la cantidad de caracteres que explícitamente indicamos.

\d mostrar dígitos

\d\d\d muestra dígitos en múltiplos de 3

\w encuentra todo lo que pueda ser una palabra menos (: \ . @ + -), solo incluye de la A a la Z en mayúsculas y minúsculas, _, dígitos.

\s muestra espacios

[0-9] números (esto es una clase entre corchetes)

[a-zA-Z0-9_]

Respuesta del ejercicio:

#[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]

Busqué un ejemplo y funciona:


Bueno, no fue precisamente lo que esperaba pero funciona.

#FFF  => #[a-fA-F0-9]{3,6} asi encontrar numeros hexadecimales```

Wow :0 !!
-# Match a single character present in the list below [0-9A-F]{10}
-{10} Quantifier — Matches exactly 10 times
-0-9 a single character in the range between 0 and 9 (case sensitive)
-A-F a single character in the range between A and F (case sensitive)

Mi solución para el problema que propuso al final:

# La expresión {6} <----- Hace referencia a
# la cantidad de veces que se repite la clase [1-9a-f]
[#][1-9a-f]{6} 

Excelente.

El profe habla de unos puntos que separa a cada caracter encontrado, no se como hizo pero yo tuve que hacer 10000 zoom para verlo 😮

#?[a-fA-F\d]{3,6}