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?
17
Que tal o kregexpeditor
fonte
Tente txt2regex e veja se isso ajuda. Eu nunca o usei a sério, mas parecia legal quando o experimentei.
fonte
Existem kodos, se você preferir um aplicativo independente. Ultimamente tenho usado visualizadores de regex online como http://debuggex.com ou http://www.regexper.com/
fonte
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:
... veja o resto para mais. A captura de tela:
fonte
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:
fonte
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
sed
nã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 issosed
é 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
sed
analisador para analisar meused
có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
sed
qualquer 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 especificamentesed
) ... 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) ..fonte
emacs re-builder
e não me ajudou em nada ... não no primeiro dia ... Tudo o que me mostrou é queemacs
ele 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 viaC-x C-e
.. Não escreve a expressão para você; você ainda precisa escrevê-lo ... E existe oemacs
sistema 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.