|
| 1 | +using System; |
| 2 | +using System.Collections.Generic; |
| 3 | +using Systeme.Text.RegularExpressions; |
| 4 | + |
| 5 | + |
| 6 | +namespace ExpresionesRegulares |
| 7 | +{ |
| 8 | + class Program |
| 9 | + { |
| 10 | + |
| 11 | + static void Main(string[] args) |
| 12 | + { |
| 13 | + |
| 14 | + // Ejemplo de texto con números |
| 15 | + string texto = "Mi número de telefono es: 123456789 y mi correo es: [email protected]. Hoy es 31/07/2024"; |
| 16 | + |
| 17 | + // Expresion regular para encontrar números |
| 18 | + string patronNumeros = @"\d+"; |
| 19 | + List<string> numerosEncontrados = new List<string>(); |
| 20 | + |
| 21 | + foreach(Match match in Regex.Matches(texto, patronNumeros)) |
| 22 | + { |
| 23 | + numerosEncontrados.Add(matches.Value); |
| 24 | + } |
| 25 | + |
| 26 | + Console.WriteLine("Números encontrados:"); |
| 27 | + foreach(string numero in numerosEncontrados) |
| 28 | + { |
| 29 | + Console.WriteLine(numero); |
| 30 | + } |
| 31 | + |
| 32 | + |
| 33 | + // Difucultad extra |
| 34 | + string email = "[email protected]"; |
| 35 | + string telefono = "+34 123456789"; |
| 36 | + string url = "https://www.example.com"; |
| 37 | + |
| 38 | + string patronEmail = @"^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$"; |
| 39 | + string patronTelefono = @"^\+?\d{1,4}?[\s.-]?\(?\d{1,4}?\)?[\s.-]?\d{1,4}[\s.-]?\d{1,4}[\s.-]?\d{1,9}$"; |
| 40 | + string patronUrl = @"^https?://([\w-]+(\.[\w-]+)+)([/\w- ./?%&=]*)?$"; |
| 41 | + |
| 42 | + |
| 43 | + Console.WriteLine($"\nEmail '{email}' es válido: {Regex.IsMatch(email, patronEmail)}"); |
| 44 | + Console.WriteLine($"Teléfono '{telefono}' es válido: {Regex.IsMatch(telefono, patronTelefono)}"); |
| 45 | + Console.WriteLine($"URL '{url}' es válida: {Regex.IsMatch(url, patronUrl)}"); |
| 46 | + } |
| 47 | + } |
| 48 | +/* |
| 49 | +
|
| 50 | +
|
| 51 | +Explicación |
| 52 | +
|
| 53 | +Extracción de Números del Texto: |
| 54 | +Se define un texto con varios números incrustados. |
| 55 | +Se utiliza una expresión regular \d+ para encontrar secuencias de dígitos. \d representa cualquier dígito y + indica una o más ocurrencias. |
| 56 | +Regex.Matches se utiliza para encontrar todas las coincidencias en el texto. Los números encontrados se almacenan en una lista y se imprimen. |
| 57 | +
|
| 58 | +Validaciones Adicionales: |
| 59 | +
|
| 60 | +Validación de Email: |
| 61 | +La expresión regular ^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$ valida un formato de email básico. |
| 62 | +^[\w\.-]+ corresponde al nombre del usuario, @ es el carácter que separa el nombre del dominio, [a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$ valida el dominio. |
| 63 | +
|
| 64 | +Validación de Número de Teléfono: |
| 65 | +La expresión regular ^\+?\d{1,4}?[\s.-]?\(?\d{1,4}?\)?[\s.-]?\d{1,4}[\s.-]?\d{1,4}[\s.-]?\d{1,9}$ valida números de teléfono con varios formatos. |
| 66 | +Esta expresión permite un prefijo de código de país opcional con un +, seguido de una combinación de números y separadores como espacios, puntos o guiones. |
| 67 | +
|
| 68 | +Validación de URL: |
| 69 | +La expresión regular ^https?://([\w-]+(\.[\w-]+)+)([/\w- ./?%&=]*)?$ valida URLs. |
| 70 | +^https?:// asegura que la URL comienza con http o https. |
| 71 | +([\w-]+(\.[\w-]+)+) valida el nombre de dominio. |
| 72 | +([/\w- ./?%&=]*)?$ valida la ruta y los parámetros adicionales. |
| 73 | +
|
| 74 | +
|
| 75 | +*/ |
| 76 | +} |
0 commit comments