edición general
47 meneos
628 clics
Este envío tiene varios votos negativos. Asegúrate antes de menear

I Hate Regex: ideas, «chuletas» y explicaciones para crear expresiones regulares «comprendiéndolas»

I Hate Regex es una web con fórmulas para las expresiones regulares más habituales, donde además se pueden encontrar algunas ideas y consejos e incluso «chuletas» con la listas de operadores y símbolos de estas curiosas bestias de la búsqueda de patrones. Su creador cree que es mejor comprender cómo funcionan que aprendérselas de memoria, y razón no le falta. [vía microsiervos]

| etiquetas: expresiones regulares , chuletas
  1. Complicadísimas, lentas de cojones y encima diferentes según el lenguaje que las interprete.

    De todas las expresiones regulares que he tenido la desgracia de mantener en mi vida, me atrevo a decir que el rotundo 100% de todas ellas eran innecesarias y habían otras formas de resolver la situación con la librería estándar del lenguaje, mucho más rápido al ejecutarse e infinitamente más sencillo para los programadores que vengan detrás.

    Usos que le doy yo a esa mierda: definición de URLs cuando estoy en algún proyecto web con frameworks y para buscar con sed, grep o en Vim. No hay ningún otro sitio donde se necesiten y si lo hay no quiero saberlo. Por supuesto no me preguntes nada sobre ellas, ya que siempre voy a internet a ver cómo se hacen, nunca me he molestado en aprenderlas.

    Por cierto gran enlace. Gracias #0
  2. #5 Qué conste que un compilador sin expresiones regulares lo vas a tener complicado para hacer...
  3. Ya saben el dicho: si vas a resolver un problema con expresiones regulares ya tienes dos problemas.
  4. #2 Están bien si te gusta hacerte pajas mentales.

    El problema de las expresiones regulares, aun controlando más o menos, es que sólo las entiendes cuando las haces, pero cuando las encuentras en código meses después tienes que pasar un rato analizandolas para ver qué coño hacen.
  5. #5 habían otras formas de resolver la situación con la librería estándar del lenguaje, mucho más rápido al ejecutarse e infinitamente más sencillo para los programadores que vengan detrás.
    Si, para esos casos no son las expresiones regulares. Pero para otros casos son muy útiles, más sencillas y más fáciles de entender.

    No hay ningún otro sitio donde se necesiten y si lo hay no quiero saberlo
    La ignorancia es libre....
  6. #3 Sí. Son un jeroglífico. Pero tremendamente útiles para algunos casos.
  7. A mí me encantan.
  8. #33 es más fácil leerse el manual.
    Aprender no da cáncer.
  9. Son diez o doce reglas que permiten hacer de todo. Además con una sintaxis compacta y clara.
    Sencillo y eficiente. Uno de los mejores inventos jamás hechos.
  10. #11 emailregex.com/

    En la de Perl vas a flipar.
  11. #5 Yo las he usado para obtener una información específica de unos logs generados diariamente. Dudo que eso se pudiese hacer hecho de una forma más sencilla usando la librería estándar del lenguaje.
  12. #0 no he entendío ná xD
  13. #34 Si yo también sé, mi único problema con las expresiones regulares es su mantenimiento, es un poco farragoso enter el funcionamiento de algo que hiciste hace tiempo. Con algo así sería más fácil el mantenimiento, aunque supongo que al final me quedaría con las expresiones regulares de todas formas...
  14. #5 ¿Te parece poco sed, grep o validación de formularios? :shit:
  15. #28 tu mismo lo estas diciendo, las expresiones regulares complejas es código que requiere comentarios adicionales/exhaustivos.
  16. #7 Está en la propia web que he mandado.
  17. #6 Las odio, pero en Apache no podríamos vivir sin ellas.
  18. #1 pues ya has entendido más que yo que en un primer momento creí que era un formulario para registrarme. ¡Y una mierda!...
  19. #26 eso se puede aplicar a todo. Hay código que se entiende sin más y código que requiere comentarios exhaustivos.

    Tú sabrás que prefieres tener.
  20. #5 #13 #16 #7 #27 #2 #22 Tal vez os interese esto que acabo de descubrir (siento el retraso :shit: ):
    simple-regex.com
  21. #5 yo solo las he usado para validar direcciones de correo en formularios web. Y como tú, las busco en internet.
  22. #3 Bueno, para evitar el problema de ¿y esto que carajo hacía? están las funciones.

    Por ejemplo, según esta web la expresión para ver si algo es un teléfono es:
    ^[+]?[(]?[0-9]{3}[)]?[s.]?[09]{3}[s.]?[09]{4,6}$

    Pues te creas una función que sea is_phone y usas la expresión dentro y ya está, el problema de legibilidad solucionado.
  23. #12 madre del amor hermoso... :palm:
  24. #16 Los compiladores no analizan el texto con expresiones regulares, tokenizan la fuente caracter por caracter y luego procesan los tokens segun las reglas de la sintaxis que imponga la gramatica ( por ejemplo usando un RDP en.wikipedia.org/wiki/Recursive_descent_parser ). Una expresion regular simplemente representa un automata y produce una salida, es de hecho, un compilador simple; pero de ningun modo se usan para compilar por compiladores de proposito general.
  25. Yo por eso no elegí matemáticas, no quería estar rodeado de problemas.
  26. #34 Aprender no da cáncer, pero consume tiempo. Una cosa, el tiempo, que es incluso más importante que el dinero, sobre todo a ciertas edades donde ya no te sobran horas al día para pasarlas delante de una consola probando frikadas como cuando tenías 20 años en la universidad.

    El manual de las regex que se lo lea quien no tenga nada mejor que hacer. Yo para las expresiones regulares seguiré buscando en SO porque después de mantenerse uno al día con Java, Python, C++, Docker, Kubernetes, Terraform, "la nube" (aka "AWS", no busques más)... para no quedarse obsoleto en el trabajo, lo único que me faltaba es pasarme más horas al día delante de una consola para aprenderme esa chufa en vez de ir, buscar lo que necesito en un momento dado y a tomar por culo.

    Las regex: no me las aprendí en la uni, no me las voy a aprender ahora. Sobre todo teniendo chuletas o páginas web donde ya te dan mascado lo que vas a necesitar.
  27. #12 Creo que es lo más difícil en Regex: filtrar un correo electrónico correctamente. Entendiendo "correctamente" al hecho de no permitir nunca un correo electrónico real, que es lo más difícil.
  28. #5 Claro, la magia y profesionalidad del split la conocemos todos. :wall: :wall: :wall: :wall:
  29. #20 Yo las uso muy seguido. Por ejemplo, con una sola instrucción puedo decir "encuéntrame números de teléfono dentro de este texto", y listo.
  30. #3 Las expresiones regulares puedes comentarlas y hacerlas por bloques de tal manera que puedas indicar que hace cada parte, si no las entiendes es porque quien la escribió no se molesto en documentarlo.
  31. #5
    ~>cat bin/urls
    #!/bin/sh
    sed -ne 's/.*(http[^"]*).*/1/p' "$1"
  32. #22 Eso es obvio pero y si tienes que modificar la expresión?
  33. A complementar con esta otra web para hacer tus pinitos en regexps o como arma secreta en esas duras epopeyas en busca de la regexp exacta :-D

    regex101.com/
comentarios cerrados

menéame