Que tal Regexp visual ?
Eu freqüentemente preciso criar expressões regulares para uso em scripts (principalmente quando usado em sed
), no entanto, eu acho que, à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?
Que tal Regexp visual ?
Que tal kregexpeditor
Teste txt2regex e veja se isso ajuda. Eu nunca usei isso seriamente, mas parecia legal quando eu tentei.
Não é exatamente o que o OP pede - mas eu acho que é relevante, então vou postar Recomendação para o editor da Regex? # 549107 - Pergunte ao Ubuntu :
Aqui está minha tentativa em uma ferramenta GUI visual regex, chamada visRegexTester.py
:
Ele tem uma "visualização ao vivo" ("Execução automática") se você digitar e alterar o campo "regex". Caso contrário, é apenas esse arquivo único; há um comentário do README no início - aqui está um trecho dele:
visRegexTester is a small Python/Tkinter GUI application to assist with writing of regular expressions; tested with Python 2.7 and 3.2. In fact, it is merely an interface for other command line programs: it exploits the fact that a lot of Unix/GNU/Linux programs used as regex processors in the terminal (e.g.
grep
,sed
,perl
), have a similar command-line syntax in three parts:(PROGRAM --ARGS) ('REGEX') (FILENAME)
... veja o resto para mais. A captura de tela:
Sim, text2re.com deve estar perto do que você está procurando. Dado o texto de origem, você pode optar por gerar um regex que corresponda a qualquer um dos textos fornecidos. A ferramenta também gera código para um punhado de idiomas.
A interface do usuário do construtor regex (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:
Não sei ao certo o que você quer dizer com "crie visualmente o código" (você quer dizer uma ferramenta de GUI?). Se você é como eu, acho impossível trabalhar com expressões regulares complexas, a menos que eu as estruture de maneira estruturada, para que eu possa obter uma representação visual da lógica.
Realmente, sed
é apenas uma linguagem de script e pode ser exibida como outras linguagens, por exemplo. com um comando por linha. Aqui está um exemplo típico do que quero dizer: Um regex sed mostrando o layout estruturado .
Um recurso muito útil de sed
é seu comando debugging l
, que é um simples dump de linha mostrando o espaço padrão com novas linhas incorporadas mostradas como \n
, etc.
O problema com sed
não é apenas as expressões regulares. Tem um conjunto enigmático de comandos para looping e teste de condição; isso leva tempo para se acostumar ... A melhor ferramenta que eu já encontrei para me ajudar a lidar com sed
é bem simples: Eu leia o manual em detalhe . A partir disso, é apenas um processo de começar pequeno e fazer as coisas simples funcionarem; então construa coisas maiores para ganhar experiência ..
O regex Perl possui alguns recursos úteis para auxiliar no estabelecimento de padrões complexos; por exemplo. a capacidade de ignorar espaços em branco em sua expressão .. (Como um desafio, e para o fator expereince , eu escrevi um sed
parser para analisar meu código sed
para permitir tal espaço em branco ... PS Eu não preciso disso agora, por causa da experiência :) Na verdade, apenas colocar os comandos, um por linha, é quase tão bom quanto o recurso perl.
A melhor ferramenta para ajudá-lo é: experiência . por exemplo. Enfrentar as questões de regex neste site é uma ótima maneira de obter essa experiência ... Eu sinto que as ferramentas de GUI não ajudam muito, porque elas inibem a experiência ...
Em resumo, as melhores ferramentas auxiliares são experiência e layout estruturado , e leia o manual (em detalhes).
Eu usei a palavra "expereince" muito .. por 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 .. Ferramentas do tipo "Regex-Builder"; não escreva o regex para você; eles apenas testam, e certamente não lidam com a lógica do programa do sed , porque isso não é uma regex ... (e você especificamente destacou sed
) ... O destaque da sintaxe eles podem oferecer não faz muito para mim. Um editor com boa correspondência de colchetes é bem útil (eu uso o emacs).