Alan Storm explica cómo funciona mi expresión regular para buscar URLs
☆
★
Un excelente artículo de Alan Storm en el que comenta lo que escribí ayer sobre la expresión regular que identifica URLs. Storm hace lo que yo no hice por pereza: diseccionar el patrón y explicar cómo funciona. Soy muy aficionado a usar el formato “/x” en expresiones regulares — resulta de gran ayuda para mejorar la legibilidad y la facilidad de mantenimiento.
En cuanto a la lista de excepciones que enumera Storm:
- No me tomé la molestia de intentar que el patrón buscara algo que no fuera una única pareja de paréntesis equilibrados en una URL porque nunca me he encontrado con una URL auténtica que contenga paréntesis usados de otra forma. Estaba a punto de ponerme en plan Friedl con mi expresión y hacer que fuera capaz de detectar paréntesis anidados, pero se impuso la sensatez. ¿Por qué molestarse en complicar el patrón para que detecte algo que no parece darse en el mundo real? A eso me refería cuando mencioné que el patrón pretendía ser práctico.
- En cuanto a las direcciones de sitios web que carecen de protocolo (como “http:”) y un prefijo “www.”, no me pareció que el esfuerzo mereciera la pena para el uso que yo le daba. En los casos en los que yo mismo empleo este patrón (pronto escribiré sobre ello), casi siempre se indica un protocolo en las URLs. Consideré un caso especial la cadena “www.” porque resultaba algo fácil y obvio. Resulta difícil detectar algo como “ejemplo.com” sin detectar también algo como “ejemplo.txt” a menos que utilices una lista de dominios de alto nivel, y no quería ir por ese camino.
(También he recibido montones de opiniones muy interesantes y sugerencias de mejoras por email; todavía las estoy leyendo, pero escribiré un nuevo artículo sobre el tema).