Seguramente más de uno que ha tenido la oportunidad de revisar código ajeno donde se hacía uso de expresiones regulares, sufrió de algún modo para entender algunos patrones; esto sucede generalmente porque pocos suelen poner nombres a los grupos que definen y menos aún usan comentarios dentro de los patrones.
El siguiente ejemplo ilustra de manera básica un patrón confuso:
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
RegexOptions options = RegexOptions.IgnoreCase;
Match match = Regex.Match("http://google.com", pattern, options);
foreach (Group group in match.Groups)
{
Console.WriteLine(group.Value);
}
}
}
Ese mismo ejemplo, usando la opción RegexOptions.IgnorePatternWhitespace permite entender más fácilmente la expresión regular mostrada:
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
Match match = Regex.Match("http://google.com", pattern, options);
foreach (Group group in match.Groups)
{
Console.WriteLine(group.Value);
}
}
}
Como se puede apreciar, el segundo ejemplo da una idea más clara de lo que captura el patrón definido.
Si desarrollan en .NET y usan expresiones regulares, no hay excusas para hacer sufrir a los que revisan o dan mantenimiento al código que hicieron 😉