Expresiones regulares en Ruby
Publicado el 7 de octubre de 2013Hace poco tuve que escribir una expresión regular en el trabajo, algo que no hago tan seguido como me gustaría. Esto me inspiró a escribir este post con un par de herramientas de Ruby que pueden resultar útiles:
Rubular
Una herramienta que uso siempre que tengo que escribir una expresión regular en Ruby es Rubular: Editor de expresiones regulares online. Podemos escribir el texto con el que queremos coincidir en un campo de texto. En otro campo escribimos la expresión, y en un tercero obtenemos las coincidencias en tiempo real. Excelente aplicación que no puede faltar en la caja de herramientas de programadores Ruby.
Además de la funcionalidad básica, cuenta con algunas características interesantes: Podemos elegir distintas versiones de Ruby (1.8.7, 1.9.2 y 2.0), crear un enlace permanente para una expresión regular (ideal para compartir por ahí) y en el sitio tenemos una referencia rápida de expresiones regulares por si no nos acordamos de alguna regla específica.
Regularity
Otra herramienta con la que me encontré recientemente es Regularity. Básicamente es una gema que le quita toda la gracia a escribir e intentar leer expresiones regulares. Su lema la identifica como ser a las expresiones regulares lo que Ubuntu a Linux: Expresiones regulares para seres humanos (qué aburridos los seres humanos).
Podría llamarse un creador de expresiones a alto nivel. Para gente que no quiere aprender a escribirlas (acá tienen 10 razones para usar y aprender expresiones regulares), puede resultar útil. Con Regularity, armar una expresión regular es algo así:
Regularity.new .start_with(3, :digits) .then('-') .then(2, :letters) .maybe('#') .one_of(['a','b']) .between([2,4], 'a') .end_with('$') |
Los objetos de tipo Regularity pueden ser usados como objetos Regexp (method_missing delega a rexexp). Los métodos get
y regexp
nos devuelven el objeto Regexp creado con Regularity, por lo que podría resultar útil como para alguien que está aprendiendo a usar expresiones regulares.
Pueden ver los métodos disponibles y el DSL en GitHub.
Jsanchez 9 octubre. 2013 - 15:29
Blasfemia!, un hombre de verdad con barba espesa lo hace con curl.
curl sitio.com/hola.html | sed /barba espesa/g