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?
17
Wie wäre es mit kregexpeditor
quelle
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.
quelle
Es gibt Kodos, wenn Sie eine eigenständige App bevorzugen. In letzter Zeit habe ich Online-Regex-Visualisierer wie http://debuggex.com oder http://www.regexper.com/ verwendet.
quelle
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:
... sehen Sie den Rest für mehr. Der Screenshot:
quelle
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:
quelle
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,
sed
ist 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
sed
ist der Debugging- Befehll
, bei dem es sich um einen einfachen Zeilendump handelt, der den Musterraum mit eingebetteten Zeilenumbrüchen\n
usw. anzeigt .Das Problem
sed
ist 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 habesed
ist 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
sed
Parser geschrieben, der meinensed
Code 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
sed
Schleifenlogik 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 herausgehobensed
) ... Die Syntax-Hervorhebung sie bieten nicht viel für mich tut . Ein Editor mit guter Klammerübereinstimmung ist allerdings ziemlich praktisch (ich verwende Emacs).quelle
emacs re-builder
und es hat mir überhaupt nicht geholfen ... nicht am letzten Tag 1 ... Alles, was es mir gezeigt hat, ist, dassemacs
es einen zusätzlichen Backslash oder zwei braucht, weil Emacs Dinge auswertet ... das kannst du machen der gleiche Test durch Auswertung Ihrer Regex überC-x C-e
.. Es schreibt nicht den Ausdruck für Sie; Sie müssen es noch schreiben ... Und dann gibt es dasemacs
System 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.