Frecuentemente necesito crear expresiones regulares para usar en scripts (principalmente cuando se usan sed
), sin embargo, a veces, las expresiones regulares se vuelven muy complicadas y difíciles de entender y editar. ¿Existe algún software que le permita a uno crear visualmente el código para expresiones regulares, que luego puedo copiar y pegar en un script?
software-rec
regular-expression
gui
Pueblo
fuente
fuente
¿Qué tal kregexpeditor
fuente
Pruebe txt2regex y vea si eso ayuda. Nunca lo he usado en serio, pero me pareció genial cuando lo probé.
fuente
Hay kodos si prefiere una aplicación independiente. Últimamente he estado usando visualizadores de expresiones regulares en línea como http://debuggex.com o http://www.regexper.com/
fuente
No es exactamente lo que pide OP, pero creo que es relevante, así que publicaré una recomendación cruzada para el editor Regex. # 549107 - Pregúntale a Ubuntu :
Aquí está mi intento de una herramienta visual regex GUI, llamada
visRegexTester.py
:Tiene una "vista previa en vivo" ("Ejecución automática") si escribe y cambia el campo "regex". De lo contrario, es solo ese archivo único; hay un comentario README al inicio; aquí hay un fragmento:
... mira el resto para más. La captura de pantalla:
fuente
Sí, text2re.com debería estar cerca de lo que estás buscando. Dado el texto fuente, puede elegir generar una expresión regular que coincida con cualquiera de los textos dados. La herramienta también genera código para un puñado de idiomas.
La IU del generador de expresiones regulares (paso 2 en la página) es un poco difícil de aprender; tenga en cuenta que al pasar el cursor sobre cualquiera de las opciones, se explica el objeto con el que está haciendo coincidir:
fuente
No estoy muy seguro de lo que quieres decir con "crear visualmente el código" (¿te refieres a una herramienta GUI?). Si eres como yo, me resulta imposible trabajar con expresiones regulares complejas, a menos que las exponga de manera estructurada, para poder obtener una mejor visualización representación de la lógica.
Realmente,
sed
es solo un lenguaje de scripting, y puede presentarse como otros lenguajes, es decir. con un comando por línea. Aquí hay un ejemplo típico de lo que quiero decir: una expresión regular de sed que muestra un diseño estructurado .Una característica muy útil
sed
es su comando de depuraciónl
, que es un volcado de línea simple que muestra el espacio del patrón con líneas nuevas incrustadas que se muestran como\n
, etc.El problema con
sed
no es solo las expresiones regulares. Tiene un conjunto funky críptico de comandos para bucles y pruebas de condición; esto lleva tiempo acostumbrarse a ... La mejor herramienta que he encontrado para ayudarme a lidiarsed
es muy simple: leí el manual en detalle ... A partir de eso, es solo un proceso de comenzar poco a poco y obtener el cosas simples trabajando; luego acumule cosas más grandes para ganar experiencia ...Perl regex tiene algunas características útiles para ayudar a diseñar patrones complejos; p.ej. la capacidad de ignorar los espacios en blanco en su expresión ... (Como desafío, y por el factor experiencia , escribí un
sed
analizador para analizar mised
código para permitir ese espacio en blanco ... PD. No lo necesito ahora; debido a la experiencia :) En realidad, solo presentar comandos, uno por línea, es casi tan bueno como la función perl.La mejor herramienta para ayudarte es: experiencia . p.ej. Abordar las preguntas sobre expresiones regulares en este sitio es una excelente manera de obtener esa experiencia ... Creo que las herramientas GUI realmente no ayudan mucho, porque inhiben la experiencia ...
En resumen, las mejores herramientas auxiliares son la experiencia y el diseño estructurado , y lea el manual (en detalle).
He usado mucho la palabra "expereince" ... con esto quiero decir que el acto de preparar expresiones regulares (y en el caso de
sed
cualquier lógica de bucle, etc.) es el factor clave ... tipo "Regex-Builder" herramientas; no escribas la expresión regular para ti; solo lo prueban, y ciertamente no manejarán la lógica del programa de sed , porque eso no es una expresión regular ... (y usted ha señalado específicamentesed
) ... El resaltado de sintaxis que pueden ofrecer no hace mucho por mí . Sin embargo, un editor con una buena combinación de paréntesis es bastante útil (uso emacs).fuente
emacs re-builder
y no me ayudó en absoluto ... no después del día 1 ... Todo lo que me mostró es queemacs
necesita una barra invertida adicional o dos, debido a cómo emacs evalúa las cosas ... Puede hacer la misma prueba evaluando su expresión regular a través deC-x C-e
... No escribe la expresión para usted; que todavía tiene que escribirlo ... Y luego está elemacs
sistema de writitng una expresión regular mediante el uso de palabras descriptivas .. (pensé que verbosa / Inglés-como sistema extinguió con COBOL .. pero incluso COBOL no está completamente muerto, aún) .. y regardles, que todavía tiene que escribirlo.