¿Software para construir visualmente expresiones regulares?

17

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?

Pueblo
fuente

Respuestas:

9

¿Qué tal Visual Regexp ?

http://laurent.riesterer.free.fr/regexp/screenshot2.png

Johan
fuente
¿Qué wm usas?
enzotib
1
Yo no, ese es un enlace directo desde la página de inicio del proyecto. Pero parece que fvwm fue popular a finales de 1990: s. Siéntase libre de comparar con algo como esto fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , no tengo idea de qué estado es fvwm hoy (pero solía ser muy estable antes de que se inventaran kde y gnome).
Johan
1
Las decoraciones de las ventanas están directamente fuera de Motif, que desde entonces ha sido portado / copiado en otros administradores de ventanas. en.wikipedia.org/wiki/Motif_Window_Manager
Arcege
4

Pruebe txt2regex y vea si eso ayuda. Nunca lo he usado en serio, pero me pareció genial cuando lo probé.

jw013
fuente
2

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:

visRegexTester es una pequeña aplicación de interfaz gráfica de usuario de Python / Tkinter para ayudar a escribir expresiones regulares; probado con Python 2.7 y 3.2. De hecho, es simplemente una interfaz para otros programas de línea de comandos: explota el hecho de que muchos programas Unix / GNU / Linux se utilizan como procesadores de expresiones regulares en el terminal (por ejemplo grep, sed , perl), tienen una sintaxis de línea de comandos similar en tres partes:

(PROGRAMA - ARGS) ('REGEX') (NOMBRE DE ARCHIVO)

... mira el resto para más. La captura de pantalla:

visRegexTester_01.png

sdaau
fuente
1

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:

IU herramienta de expresiones regulares

tcdyl
fuente
0

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, sedes 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 sedes 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 sedno 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 lidiar sedes 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 sedanalizador para analizar mi sedcó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 sedcualquier 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íficamente sed) ... 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).

Peter.O
fuente
Creo que no hace daño si tienes una herramienta para probar y experimentar fácilmente. (emacs re-builder)
favadi
1
Lo he usado emacs re-buildery no me ayudó en absoluto ... no después del día 1 ... Todo lo que me mostró es que emacsnecesita 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 de C-x C-e... No escribe la expresión para usted; que todavía tiene que escribirlo ... Y luego está el emacssistema 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.
Peter.O