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 😉
4 replies on “Expresiones regulares más entendibles en .NET”
los comentarios ayudan un poco, pero de cualquier manera el programador tiene que tener conocimiento sobre expresiones regulares
una alternativa mucho mas facil y que realmente mejora mucho la legibilidad seria usar una libreria como esta
http://www.ayende.com/Blog/archive/2006/10/23/7159.aspx
que implementa el patron fluent interface, y nos libera completamente de la complejidad de RegEx
De acuerdo -el objetivo de la entrada es facilitar el entendimiento de un patrón definido (obviamente se debe tener conocimientos en expresiones regulares)
En efecto, esa opción es aún mejor para aquellos que no están tan familiarizados con las expresiones regulares -también vi ese artículo en Ayende 🙂 -, gracias por poner el enlace.
[...] la primera parte en el que recomendaba el uso de comentarios y la asignación de nombres a los grupos que se [...]
Gracias, me ayudo bastante. No sabia que se podian escribir de esa manera.
Saludos.