Software zur visuellen Erstellung regulärer Ausdrücke?

17

Ich muss häufig reguläre Ausdrücke für die Verwendung in Skripten erstellen (meistens in Skripten sed). Manchmal sind die regulären Ausdrücke jedoch sehr kompliziert und für mich schwierig zu verstehen und zu bearbeiten. Gibt es eine Software, mit der man den Code für reguläre Ausdrücke visuell erstellen kann, den ich dann kopieren und in ein Skript einfügen kann?

Dorf
quelle

Antworten:

9

Wie wäre es mit Visual Regexp ?

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

Johan
quelle
Was wm benutzt du?
Enzotib
1
Nicht ich, das ist ein Link direkt von der Projekthomepage. Aber es sieht so aus, als ob fvwm in den späten 1990ern populär war. Fühlen Sie sich frei, mit so etwas zu vergleichen fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , ich habe keine Ahnung, wie der Zustand von fvwm heute ist (aber er war früher sehr stabil, bevor kde und gnome erfunden wurden).
Johan
1
Die Fensterdekorationen stammen direkt aus Motif, das inzwischen in anderen Fenstermanagern portiert / kopiert wurde. en.wikipedia.org/wiki/Motif_Window_Manager
Arcege
5

Wie wäre es mit kregexpeditor

Alexander
quelle
4

Versuchen Sie es mit txt2regex und sehen Sie, ob das hilft. Ich habe es nie ernsthaft benutzt, aber es schien cool, als ich es ausprobierte.

jw013
quelle
2

Nicht genau das, wonach OP fragt - aber ich denke, es ist relevant, also werde ich Empfehlung für Regex-Editor durchkreuzen ? # 549107 - Fragen Sie Ubuntu :

Hier ist mein Versuch eines visuellen Regex-GUI-Tools mit dem Namen visRegexTester.py:

Es hat eine "Live-Vorschau" ("Automatische Wiederholung"), wenn Sie das Feld "Regex" eingeben und ändern. Ansonsten ist es nur diese eine Datei; Zu Beginn gibt es einen README-Kommentar - hier ist ein Auszug daraus:

visRegexTester ist eine kleine Python / Tkinter-GUI-Anwendung, die das Schreiben regulärer Ausdrücke unterstützt. getestet mit Python 2.7 und 3.2. In der Tat ist es nur eine Schnittstelle für andere Kommandozeilenprogramme: es ist die Tatsache ausnutzt , dass eine Menge von Unix / GNU / Linux - Programmen als regex Prozessoren in dem Endgerät verwendet wird (zB grep, sed, perl), eine ähnliche Befehlszeilensyntax in drei haben Teile:

(PROGRAMM --ARGS) ('REGEX') (DATEINAME)

... sehen Sie den Rest für mehr. Der Screenshot:

visRegexTester_01.png

sdaau
quelle
1

Ja, text2re.com sollte nah an dem sein, wonach Sie suchen. Bei gegebenem Quelltext können Sie eine Regex generieren, die mit jedem gegebenen Text übereinstimmt. Das Tool generiert auch Code für ein bisschen mehr Sprachen.

Die Benutzeroberfläche von Regex Builder (Schritt 2 auf der Seite) ist etwas schwierig zu erlernen. Beachten Sie, dass der Mauszeiger über eine der Optionen das Objekt erklärt, mit dem Sie übereinstimmen:

Benutzeroberfläche des Regex-Tools

tcdyl
quelle
0

Ich bin mir nicht ganz sicher, was Sie mit "Code visuell erstellen" meinen (meinen Sie ein GUI-Tool?). Wenn Sie wie ich sind, ist es mir unmöglich, mit komplexen regulären Ausdrücken zu arbeiten, es sei denn, ich habe sie strukturiert angeordnet, damit ich die Logik besser visuell darstellen kann.

Wirklich, sedist nur eine Skriptsprache, und es kann wie andere Sprachen ausgelegt werden, dh. mit einem Befehl pro Zeile. Hier ist ein typisches Beispiel für das, was ich meine: Ein sed-Regex mit strukturiertem Layout .

Eine sehr praktische Funktion von sedist der Debugging- Befehl l, bei dem es sich um einen einfachen Zeilendump handelt, der den Musterraum mit eingebetteten Zeilenumbrüchen \nusw. anzeigt .

Das Problem sedist nicht nur die regulären Ausdrücke. Es hat einen funky kryptischen Befehlssatz für Schleifen und Bedingungstests; dies braucht Zeit , um zu gewöhnen ... Das beste Werkzeug , das ich mich jemals mit mit zu tun helfen gefunden habe sedist ganz einfach: Ich habe das Handbuch im Detail lesen .. Von diesem, es nur ein Prozess des Startens klein ist und immer die einfache Dinge funktionieren; Bauen Sie dann größere Dinge auf, um Erfahrungen zu sammeln.

Perl Regex verfügt über einige nützliche Funktionen zum Erstellen komplexer Muster. z.B. die Fähigkeit, Leerzeichen in Ihrem Ausdruck zu ignorieren. (Als Herausforderung und als Grund für die Erfahrung habe ich einen sedParser geschrieben, der meinen sedCode analysiert , um solche Leerzeichen zuzulassen.) PS: Ich brauche es jetzt nicht :) Tatsächlich ist das Auslegen von Befehlen (einer pro Zeile) fast so gut wie die Perl-Funktion.

Das beste Hilfsmittel ist: Erfahrung . z.B. Die Bewältigung der regex Fragen auf dieser Website ist eine gute Möglichkeit , diese Erfahrung zu bekommen ... Ich glaube , dass GUI - Tools nicht wirklich hilft viel, weil sie die hemmen Erfahrung ...

Zusammenfassend sind die besten Hilfsmittel Erfahrung und strukturiertes Layout , und lesen Sie das Handbuch (im Detail).

Ich habe das Wort "expereince" oft verwendet. Damit meine ich, dass das Vorbereiten von regulären Ausdrücken (und im Fall von sedSchleifenlogik usw.) der Schlüsselfaktor ist. Typ "Regex-Builder" Werkzeuge; schreibe den regulären Ausdruck nicht für dich; sie testen nur sie, und sie sicherlich nicht der Griff Programmlogik sed , denn das ist nicht ein regulärer Ausdruck ist .. (und Sie haben speziell herausgehoben sed) ... Die Syntax-Hervorhebung sie bieten nicht viel für mich tut . Ein Editor mit guter Klammerübereinstimmung ist allerdings ziemlich praktisch (ich verwende Emacs).

Peter.O
quelle
Ich denke, es tut nicht weh, wenn Sie ein Werkzeug zum einfachen Testen und Experimentieren haben. (emacs re-builder)
favadi
1
Ich habe verwendet emacs re-builderund es hat mir überhaupt nicht geholfen ... nicht am letzten Tag 1 ... Alles, was es mir gezeigt hat, ist, dass emacses einen zusätzlichen Backslash oder zwei braucht, weil Emacs Dinge auswertet ... das kannst du machen der gleiche Test durch Auswertung Ihrer Regex über C-x C-e.. Es schreibt nicht den Ausdruck für Sie; Sie müssen es noch schreiben ... Und dann gibt es das emacsSystem des Schreibens eines regulären Ausdrucks mit beschreibenden Wörtern. (Ich dachte, dass das verbose / englisch-ähnliche System mit COBOL ausgestorben ist. Aber selbst COBOL ist nicht ganz tot.) noch) .. und Grüße, du musst es noch schreiben.
Peter.O