1
+ import java .util .regex .Matcher ;
2
+ import java .util .regex .Pattern ;
3
+
4
+ public class eulogioep {
5
+ public static void main (String [] args ) {
6
+ // Texto de ejemplo para probar las expresiones regulares
7
+ String texto =
"Hola, mi número es 123-456-789. Mi email es [email protected] " +
8
+ "y mi sitio web es https://www.ejemplo.com. Tengo 25 años y otro " +
9
+ "teléfono es +34 612 345 678." ;
10
+
11
+ // 1. Encontrar y extraer todos los números del texto
12
+ System .out .println ("1. Extracción de números:" );
13
+ extraerNumeros (texto );
14
+
15
+ // DIFICULTAD EXTRA
16
+ // 2. Validación de email
17
+ System .out .println ("\n 2. Validación de email:" );
18
+ validarEmail (
"[email protected] " );
19
+ validarEmail ("email_invalido.com" );
20
+
21
+ // 3. Validación de número de teléfono
22
+ System .out .println ("\n 3. Validación de número de teléfono:" );
23
+ validarTelefono ("123-456-789" );
24
+ validarTelefono ("+34 612 345 678" );
25
+ validarTelefono ("1234" );
26
+
27
+ // 4. Validación de URL
28
+ System .out .println ("\n 4. Validación de URL:" );
29
+ validarURL ("https://www.ejemplo.com" );
30
+ validarURL ("http://ejemplo" );
31
+ }
32
+
33
+ /**
34
+ * Encuentra y extrae todos los números de un texto.
35
+ * Utiliza la expresión regular \\d+ que significa:
36
+ * \\d - cualquier dígito (0-9)
37
+ * + - uno o más dígitos
38
+ */
39
+ public static void extraerNumeros (String texto ) {
40
+ Pattern patron = Pattern .compile ("\\ d+" );
41
+ Matcher matcher = patron .matcher (texto );
42
+
43
+ while (matcher .find ()) {
44
+ System .out .println ("Número encontrado: " + matcher .group ());
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Valida un email usando una expresión regular.
50
+ * ^[A-Za-z0-9+_.-]+@(.+)$ significa:
51
+ * ^ - inicio de la línea
52
+ * [A-Za-z0-9+_.-]+ - uno o más caracteres alfanuméricos, más algunos símbolos permitidos
53
+ * @ - el símbolo @
54
+ * (.+) - cualquier carácter (el dominio)
55
+ * $ - fin de la línea
56
+ */
57
+ public static void validarEmail (String email ) {
58
+ String patronEmail = "^[A-Za-z0-9+_.-]+@(.+)$" ;
59
+ System .out .println (email + " es válido: " + email .matches (patronEmail ));
60
+ }
61
+
62
+ /**
63
+ * Valida un número de teléfono usando una expresión regular.
64
+ * ^(\\+\\d{1,3}\\s?)?(\\d{3}[-\\s]?){2}\\d{3}$ significa:
65
+ * ^ - inicio de la línea
66
+ * (\\+\\d{1,3}\\s?)? - código de país opcional (+34 )
67
+ * (\\d{3}[-\\s]?) - grupos de 3 dígitos separados por guión o espacio
68
+ * \\d{3}$ - últimos 3 dígitos y fin de línea
69
+ */
70
+ public static void validarTelefono (String telefono ) {
71
+ String patronTelefono = "^(\\ +\\ d{1,3}\\ s?)?(\\ d{3}[-\\ s]?){2}\\ d{3}$" ;
72
+ System .out .println (telefono + " es válido: " + telefono .matches (patronTelefono ));
73
+ }
74
+
75
+ /**
76
+ * Valida una URL usando una expresión regular.
77
+ * ^(https?:\\/\\/)(www\\.)?([\\w]+\\.)+[\\w]{2,63}\\/?$ significa:
78
+ * ^(https?:\\/\\/) - inicio con http:// o https://
79
+ * (www\\.)? - www. opcional
80
+ * ([\\w]+\\.)+ - uno o más subdominios
81
+ * [\\w]{2,63} - dominio de nivel superior (2-63 caracteres)
82
+ * \\/?$ - barra final opcional y fin de línea
83
+ */
84
+ public static void validarURL (String url ) {
85
+ String patronURL = "^(https?:\\ /\\ /)(www\\ .)?([\\ w]+\\ .)+[\\ w]{2,63}\\ /?$" ;
86
+ System .out .println (url + " es válido: " + url .matches (patronURL ));
87
+ }
88
+ }
0 commit comments