Un logiciel pour construire visuellement des expressions régulières?

17

J'ai souvent besoin de créer des expressions régulières à utiliser dans les scripts (surtout lorsqu'elles sont utilisées dans sed), mais je trouve que parfois les expressions régulières deviennent très compliquées et difficiles à comprendre et à modifier. Existe-t-il un logiciel qui permet de créer visuellement le code des expressions régulières, que je peux ensuite copier et coller dans un script?

Village
la source

Réponses:

9

Qu'en est-il de Visual Regexp ?

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

Johan
la source
Quel wm utilisez-vous?
enzotib
1
Pas moi, c'est un lien directement depuis la page d'accueil du projet. Mais il ressemble à fvwm qui était populaire à la fin des années 1990: s. N'hésitez pas à comparer avec quelque chose comme ça fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , je n'ai aucune idée de quel état fvwm est aujourd'hui (mais est utilisé pour être très stable avant que kde et gnome ne soient inventés).
Johan
1
Les décorations de fenêtre sont directement hors de Motif, qui a depuis été porté / copié dans d'autres gestionnaires de fenêtres. en.wikipedia.org/wiki/Motif_Window_Manager
Arcege
4

Essayez txt2regex et voyez si cela aide. Je ne l'ai jamais utilisé sérieusement, mais ça avait l'air cool quand je l'ai essayé.

jw013
la source
2

Pas exactement ce qu'OP demande - mais je pense que c'est pertinent, donc je vais croiser la recommandation pour l'éditeur Regex? # 549107 - Demandez à Ubuntu :

Voici ma tentative d'un outil d'interface graphique visuelle regex, appelé visRegexTester.py:

Il a un "aperçu en direct" ("Réexécution automatique") si vous tapez et modifiez le champ "regex". Sinon, c'est juste ce fichier unique; il y a un commentaire README au début - en voici un extrait:

visRegexTester est une petite application graphique Python / Tkinter pour aider à l'écriture d'expressions régulières; testé avec Python 2.7 et 3.2. En fait, il est simplement une interface pour d' autres programmes de ligne de commande: il exploite le fait que beaucoup de programmes Unix / GNU / Linux utilisés comme processeurs regex dans le terminal (par exemple grep, sed, perl), une syntaxe de ligne de commande similaire dans trois les pièces:

(PROGRAMME --ARGS) ('REGEX') (FILENAME)

... voir le reste pour plus. La capture d'écran:

visRegexTester_01.png

sdaau
la source
1

Oui, text2re.com devrait être proche de ce que vous recherchez. Étant donné le texte source, vous pouvez choisir de générer une expression régulière qui correspond à l'un des textes donnés. L'outil génère également du code pour une poignée de langues.

L'interface utilisateur du générateur d'expressions régulières (étape 2 de la page) est légèrement difficile à apprendre; notez que le survol de l'une des options explique l'objet auquel vous faites correspondre:

interface utilisateur de l'outil d'expression régulière

tcdyl
la source
0

Je ne sais pas trop ce que vous entendez par "créer visuellement le code" (voulez-vous dire un outil GUI?). Si vous êtes comme moi, je trouve impossible de travailler avec des expressions régulières complexes, à moins de les disposer de manière structurée, afin de pouvoir obtenir une meilleure représentation visuelle de la logique.

Vraiment, sedc'est juste un langage de script, et il peut être présenté comme d'autres langages, c'est-à-dire avec une commande par ligne. Voici un exemple typique de ce que je veux dire: Un regex sed montrant une disposition structurée .

Une fonction très pratique de sedest sa commande de débogagel , qui est un simple vidage de ligne montrant l'espace de motif avec des sauts de ligne incorporés montrés comme \n, etc.

Le problème avec sedn'est pas seulement les expressions régulières. Il a un ensemble cryptique de commandes funky pour les tests de boucle et de condition; cela prend du temps pour s'habituer à ... Le meilleur outil que j'ai jamais trouvé pour m'aider à gérer sedest tout simplement: j'ai lu le manuel en détail . les choses simples fonctionnent; puis accumulez de plus grandes choses pour acquérir de l'expérience ..

Perl regex a quelques fonctionnalités utiles pour aider à établir des modèles complexes; par exemple. la possibilité d'ignorer les espaces dans votre expression .. (Comme un défi, et pour le facteur expereince , j'ai écrit un sedanalyseur pour analyser mon sedcode pour autoriser de tels espaces ... PS. Je n'en ai pas besoin maintenant; à cause de l'expérience :) En fait, le simple fait de disposer des commandes, une par ligne, est presque aussi bon que la fonctionnalité perl.

Le meilleur outil pour vous aider est: l' expérience . par exemple. Aborder les questions regex sur ce site est un excellent moyen d'obtenir cette expérience ... Je pense que les outils GUI n'aident pas vraiment beaucoup, car ils inhibent l' expérience ...

En résumé, les meilleurs outils d'aide sont l' expérience et la disposition structurée , et lisez le manuel (en détail).

J'ai beaucoup utilisé le mot "expereince". J'entends par là que l'acte de préparer des expressions régulières (et dans le cas de sedtoute logique de boucle, etc.) est le facteur clé .. Type "Regex-Builder" outils; n'écrivez pas l'expression régulière pour vous; ils ne font que le tester, et ils ne géreront certainement pas la logique du programme de sed , parce que ce n'est pas une expression rationnelle .. (et vous l'avez spécifiquement distingué sed) ... La mise en évidence de la syntaxe qu'ils peuvent offrir ne fait pas grand chose pour moi . Un éditeur avec une bonne correspondance des parenthèses est assez pratique cependant (j'utilise emacs) ..

Peter.O
la source
Je pense que cela ne fait pas de mal si vous avez un outil pour tester et expérimenter facilement. (emacs re-builder)
favadi
1
Je l'ai utilisé emacs re-builderet cela ne m'a pas aidé du tout ... pas le dernier jour ... Tout ce qu'il m'a montré, c'est emacsqu'il a besoin d'une ou deux barres obliques inverses supplémentaires, à cause de la façon dont emacs évalue les choses ... Vous pouvez faire le même test en évaluant votre expression régulière via C-x C-e.. Il n'écrit pas l'expression pour vous; vous avez encore besoin de l'écrire ... Et puis il y a le emacssystème d'écriture d'une expression rationnelle en utilisant des mots descriptifs .. (Je pensais que le système verbeux / anglais s'est éteint avec COBOL .. mais même COBOL n'est pas complètement mort, encore) .. et respectles, vous avez encore besoin de l'écrire.
Peter.O