Skip to content

Commit 738b662

Browse files
committed
#16 - java
1 parent 1ce1d84 commit 738b662

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
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("\n2. 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("\n3. 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("\n4. 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

Comments
 (0)