Software para criar visualmente expressões regulares?

17

Frequentemente, preciso criar expressões regulares para uso em scripts (principalmente quando usadas sed), no entanto, às vezes, as expressões regulares ficam muito complicadas e difíceis para eu entender e editar. Existe algum software que permita criar visualmente o código para expressões regulares, que eu possa copiar e colar em um script?

Vila
fonte

Respostas:

9

E o Visual Regexp ?

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

Johan
fonte
O que você usa?
enzotib
1
Não eu, esse é um link direto da página inicial do projeto. Mas parece que o fvwm era popular no final dos anos 90: s. Sinta-se à vontade para comparar com algo como este fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , não tenho idéia do estado do fvwm hoje (mas costuma ser muito estável antes do kde e do gnome).
Johan
1
As decorações das janelas estão diretamente fora do Motif, que já foi portado / copiado em outros gerenciadores de janelas. pt.wikipedia.org/wiki/Motif_Window_Manager
Arcege
5

Que tal o kregexpeditor

Alexander
fonte
4

Tente txt2regex e veja se isso ajuda. Eu nunca o usei a sério, mas parecia legal quando o experimentei.

jw013
fonte
2

Não é exatamente o que o OP solicita - mas acho que é relevante, portanto, cruzarei a recomendação para o editor Regex? # 549107 - Pergunte ao Ubuntu :

Aqui está minha tentativa de uma ferramenta GUI de regex visual, chamada visRegexTester.py:

Ele possui uma "visualização ao vivo" ("Execução automática") se você digitar e alterar o campo "regex". Caso contrário, é apenas esse único arquivo; existe um comentário README no início - aqui está um trecho:

visRegexTester é um pequeno aplicativo GUI Python / Tkinter para auxiliar na escrita de expressões regulares; testado com Python 2.7 e 3.2. Na verdade, é apenas uma interface para outros programas de linha de comando: ele explora o fato de que um monte de programas Unix / GNU / Linux usado como processadores de regex no terminal (por exemplo grep, sed, perl), tem uma sintaxe de linha de comando similar em três partes:

(PROGRAMA --ARGS) ('REGEX') (NOME DO ARQUIVO)

... veja o resto para mais. A captura de tela:

visRegexTester_01.png

sdaau
fonte
1

Sim, o text2re.com deve estar próximo do que você está procurando. Dado o texto de origem, você pode optar por gerar uma regex que corresponda a qualquer texto especificado. A ferramenta gera código para um punhado de idiomas também.

A interface do usuário do construtor de expressões regulares (etapa 2 na página) é um pouco difícil de aprender; observe que passar o mouse sobre qualquer uma das opções explica o objeto com o qual você está correspondendo:

UI da ferramenta regex

tcdyl
fonte
0

Não sei bem o que você quer dizer com "criar visualmente o código" (você quer dizer uma ferramenta da GUI?). Se você é como eu, acho impossível trabalhar com expressões regulares complexas, a menos que eu as descreva de maneira estruturada, para que eu possa ter uma melhor representação visual da lógica.

Realmente, sedé apenas uma linguagem de script e pode ser apresentada como outras línguas, ie. com um comando por linha. Aqui está um exemplo típico do que quero dizer: Um regex sed mostrando layout estruturado .

Um recurso muito útil sedé o seu comando de depuraçãol , que é um simples despejo de linha que mostra o espaço do padrão com as novas linhas incorporadas mostradas como \n, etc.

O problema com sednão são apenas as expressões regulares. Possui um conjunto de comandos enigmáticos para testes de loop e condição; isso leva tempo para se acostumar ... A melhor ferramenta que eu já encontrei para me ajudar a lidar com isso sedé simples: eu li o manual em detalhes .. A partir disso, é apenas um processo de começar pequeno e obter o coisas simples funcionando; então construa coisas maiores para ganhar experiência ..

O perl regex possui alguns recursos úteis para ajudar a criar padrões complexos; por exemplo. a capacidade de ignorar o espaço em branco em sua expressão .. (Como um desafio, e pelo fator experiência , escrevi um sedanalisador para analisar meu sedcódigo para permitir esse espaço em branco ... PS: Não preciso disso agora; por causa da experiência :) Na verdade, apenas definir comandos, um por linha, é quase tão bom quanto o recurso perl.

A melhor ferramenta para ajudá-lo é: experiência . por exemplo. Lidar com as perguntas regulares sobre regex neste site é uma ótima maneira de obter essa experiência ... Sinto que as ferramentas da GUI não ajudam muito, porque inibem a experiência ...

Em resumo, as melhores ferramentas auxiliares são a experiência e o layout estruturado , e leia o manual (em detalhes).

Eu usei muito a palavra "expereince". Com isso, quero dizer que o ato de preparar expressões regulares (e no caso de sedqualquer lógica de loop etc.) é o fator-chave. Tipo "Regex-Builder" Ferramentas; não escreva o regex para você; eles apenas testam e certamente não lidam com a lógica do programa sed , porque isso não é um regex .. (e você destacou especificamente sed) ... O destaque de sintaxe que eles podem oferecer não faz muito para mim . Um editor com boa correspondência de colchetes é bastante útil (eu uso o emacs) ..

Peter.O
fonte
Eu acho que não dói se você tiver uma ferramenta para testes e experiências fáceis. (emacs re-builder)
favadi
1
Eu usei emacs re-buildere não me ajudou em nada ... não no primeiro dia ... Tudo o que me mostrou é que emacsele precisa de uma barra invertida extra ou duas, por causa de como o emacs avalia as coisas ... Você pode fazer o mesmo teste avaliando seu regex via C-x C-e.. Não escreve a expressão para você; você ainda precisa escrevê-lo ... E existe o emacssistema de escrever uma expressão regular usando palavras descritivas .. (Eu pensei que esse sistema detalhado / em inglês desapareceu com o COBOL .. mas mesmo o COBOL não está completamente morto, ainda) .. e considerações, você ainda precisa escrevê-lo.
Peter.O