Laden...

On-the-fly Regex-Tester: Regex-Lab

Erstellt von herbivore vor 17 Jahren Letzter Beitrag vor 8 Jahren 140.099 Views
herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren
On-the-fly Regex-Tester: Regex-Lab

Hallo Community,

ich bin heute auf den Regex-Tester von cdr aufmerksam geworden und habe das zum Anlass genommen, einen eigenen verbesserten Regex-Tester zu schreiben, der mehr auf das experimentelle Erstellen von Regex abhebt. Deshalb habe ich das Programm Regex-Lab genannt.

Regex-Lab arbeitet on the fly. Das bedeutet, dass bei jeder Änderung des Pattern, des Input-Textes oder der Optionen/Einstellungen, die Auswirkungen sofort angezeigt werden.

Dabei wird der gefundene Text unterstrichen und die gefundenen Gruppen werden im InputText und in der Group-Liste farblich hervorgehoben. Man sieht also genau, von wo bis wo der Pattern und seine Teile (Groups) gematcht haben. Wenn eine Gruppe mehr als einen Capture hat, werden die Captures in der Farbe der Gruppe, aber mit wechselnder Helligkeit ausgegeben, so dass man auch hier sehen kann, von wo bis wo sich der Capture im Input-Text erstreckt.

Ich habe zwei Screenshots angehängt, durch die das deutlicher wird.

Version 0.02 (05.07.2006)

Verbesserungen:*Es gibt jetzt ein NumericUpDown-Feld zur Auswahl, der wievielte Match gefunden und angezeigt werden soll. Das ist quasi die on-the-fly-Version eines FindNext-Buttons. *Dieses NumericUpDown-Feld wird zur Erinnerung gelb eingefärbt, sobald ein anderer Wert als 1 eingestellt ist. Es wird rot, wenn nur deshalb kein Match gefunden wird, weil der eingestellte Wert zu hoch ist. *Erfolgt ein Match, wird der Cursor auf den Beginn des Matches gesetzt. *Wenn man eine Gruppe oder einen Capture auswählt, wird der Cursor auf den Beginn der gewählten Gruppe oder des gewählten Captures gesetzt. *Befindet sich die Cursorposition in einem der drei genannten Fälle außerhalb sichtbaren Bereichs, wird die Textbox so gescrollt, dass die Cursorposition in den sichtbaren Bereich kommt. *Die Option IgnoreCase ist voreingestellt. *Beim Eintragen der gefundenen Textstellen in die ListViews werden Whitespaces durch die Escapesequenzen ersetzt. Für einen Zeilenvorschub wird jetzt also \n angezeigt. *Die Anwendung startet mit leeren Feldern (statt mit Beispieltext und -pattern). *Die Tabstops sind jetzt etwas praktischer gesetzt. *Der Quelltext ist in der Zip-Datei enthalten.

Bekannte Einschränkungen:*Das Matchen geht normalerweise in Sekundenbruchteilen und wird daher im GUI-Thread ausgeführt. Wenn Pattern mit massivem Backtracking auf lange Input-Texte angewendet werden, kann es sein, dass die Anwendung für längere Zeit (bis eben der Match abgearbeitet wurde) nicht reagiert. Wird vermutlich in der Praxis nur äußerst selten vorkommen.

Tipps:*Beim Übernehmen des fertigen Pattern in den Programmcode muss man darauf achten, ... *dass die Flags (RegexOptions) im Code genauso gesetzt sind wie in Regex-Lab und *der Pattern bei der Übernahme in ein String-Literal richtig escaped wird:
am besten man schreibt ein @ vor das String-Literal (siehe [FAQ] Was bedeutet das @ (=at) vor String-Literalen? Und: Wissenswertes zu Escape-Sequenzen), um sich eine Doppelung aller Backslashes () zu sparen, muss dann allerdings alle Anführungszeichen (") doppeln.

herbivore

PS: Fehler und Ungereimtheiten sind natürlich nicht ausgeschlossen. Für entsprechende Hinweise bin ich dankbar.

Stichworte: regexlab, regextester (bei Erscheinen von Version 0.06 war Version 0.02 596 mal heruntergeladen)

In einem anderen Beitrag weiter unten ist die neue Version 0.06 mit einigen kleinen Verbesserungen verfügbar. Ich empfehle diese neue Version herunterzuladen.

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren
herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren
35 Beiträge seit 2006
vor 17 Jahren

Hey herbivore,

das Tool kommt genau richtig, muss nämlich grad einen regulären Ausdruck auf Funktionalität mit viel und verschiedenem content testen.

Das Programm gefällt mir richtig gut, gerade durch das hervorheben der verschiedenen Elemente! Bisher auch kein Bug gefunden - werde ich wahrscheinlich auch nicht 😉

Gruß
Thomas

we love C#...

f
722 Beiträge seit 2005
vor 17 Jahren

Vielen Dank für ein sehr schönes, nützliches Programm.

1.985 Beiträge seit 2004
vor 17 Jahren

Hallo herbivore,

starkes Teil! Erleichtert einem die Arbeit mit RegEx doch ziemlich. Danke sehr!

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren

Hallo zusammen,

es ist eine neue Version verfügbar. Verbesserungen siehe oben.

Viel Spaß damit!

herbivore

X
2.051 Beiträge seit 2004
vor 17 Jahren

Hallo herbivore,

ich muss leider zugeben schäm, dass ich keine Ahnung von Regex habe. 😭

Wenn du dein Programm noch um eine Art Wysiwyg-Editor erweitern würdest, wäre ich maßlos glücklich 🙂

Gruß
Xqgene

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Xqgene,

in gewissem Sinne ist das Programm ja gerade ein Wysiwyg-Editor. Du tippst was ein und siehst sofort, was du bekommst.

Oder meinst du, dass man irgendwo z.B. "eine Ziffer" auswählen kann und er schreibt dann [0-9] bzw. \d in das Pattern-Feld? Das ist m.E. ein Job für die (übrigens auch in dieser Hinsicht sehr gute) SDK-/MSDN-Dokumentation. Und da ein solcher Modus schnell an seine Grenzen stößt, möchte ich damit gar nicht erst anfangen. Aber ich habe schon überlegt, eine F1 Übersichtshilfe einzubauen.

herbivore

Nachtrag: In der der Version 0.06 weiter unten ist die Übersichtshilfe eingebaut. Sie ist - wie gesagt - durch Drücken der F1-Taste zu erreichen. Hier ein Screenshot:

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo herbivore,

n1! Mehr brauch ich dazu nicht sagen 😁

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

X
2.051 Beiträge seit 2004
vor 17 Jahren

Ich dachte an so eine Toolbox, wo verschiedene Bausteine abgelegt sind (a lá VS). Eventuel sogar mit Option, selbst solche Bausteine zu definieren. Einige Bausteione können vielleicht als Container für andere dienen u.s.w. Diese Bausteine werden nacheinander auf das "Design-Feld" gezogen, ausgewählt, oder was auch imer gemacht, daraus wird ein Pattern generiert und mit deinem Programm gleich getestet.

mir ist schon klar, dass so ein Designer schnell an seine Grenzen stoßen kann...

gruß
Xqgene

d
123 Beiträge seit 2004
vor 17 Jahren

hi herbivore.
nettes Tool, wirklich!

was mir persönlich fehlt ist ein "find all matches"-Häkchen.
lässt sich das einbauen?

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 17 Jahren

Hallo _void,

sorry, war in Urlaub.

Zu deiner Frage:

Einerseits ist es leicht, weil man ja nur Regex.Match durch Regex.Matches ersetzen müsste und den einen Match durch ein Match-Array. An allen Stellen, wo der Match verwendet wird, müsste man je nachdem alle oder das gewählte Match-Array-Element verwenden.

Andererseits wäre die Frage, wie die unterschiedlichen Matches unterschieden werden können, denn sie können ja wie die Gruppen und Captures auch nahtlos aneinanderstoßen. Mal abgesehen davon, dass ein Match selbst momentan "nur" unterstrichen wird, sind Farbton und Helligkeit zur Kennzeichnung schon "verbraucht".

Außerdem bräuchte man der Konsistenz wegen dann auch noch ein weiteres ListView für alle Matches und das scheint mir etwas überladen.

Wenn ich so ein Häkchen in die "offizielle" Version einbaue, würde ich es gerne konsistent und schön machen. Und einen solchen Weg sehe ich momentan nicht. Da aber der Quellcode beiliegt, wäre es für dich sicher relativ einfach, so ein Häkchen quick'n'dirty einzubauen.

Vielleicht noch der Hinweis, dass man mit dem NumericUpDown-Feld für die Nummer des Matches sehr schnell durch die einzelnen Matches laufen kann.

herbivore

181 Beiträge seit 2006
vor 17 Jahren

hey coole Sache! ist echt nicht schlecht, kannst dir ja mal überlegen das in den Softwarelinks von Wikipedia zu posten, denn da ist imho nichts wirklich tolles dabei.

😉

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo zusammen,

als Regex-Lab heute wieder einmal gelobt wurde (vielen Dank), hat mich das motiviert eine neue Version zur Verfügung zu stellen.

Version 0.06 (20.08.2007)

Es gibt folgende kleine Verbesserungen (gegenüber Version 0.02):* Einfache Hilfe zu regulären Ausdrücken (aufzurufen über F1)

  • Zusätzliche Verwendung von grauer Hinterlegung für den gesamten Match (bisher wurde nur unterstrichen)
  • Standard-Kontext-Menü jetzt für alle Eingabefelder
  • Ctrl-A (alles markieren) funktioniert jetzt in allen Eingabefeldern

Die Hilfe ist eine einfache HTML-Datei. Dabei gibt es folgende Besonderheit: Die HTML-Datei ist einerseits in Regex-Lab einkompiliert und liegt andererseits als separate Datei bei. Die separate Datei wird also nicht benötigt; die Exe alleine reicht. Wenn aber die Datei regexlab.html im Anwendungsverzeichnis von Regex-Lab vorhanden ist, wird stattdessen diese geladen. So hat jeder die Möglichkeit, die Hilfe anzupassen und die für ihn wichtigen Punkte einzutragen oder die Beschreibungen zu ändern oder zu ergänzen.

Wegen der farblichen Gestaltung der Hilfe habe ich lange mit mir gerungen. Einerseits bin ich ja eigentlich ein Fan von schlichten Layouts. Anderseits bot sich natürlich an, die Farben, die Regex-Lab verwendet, in der Hilfe wieder aufzugreifen. Das habe ich letztlich auch getan. Wer die Hilfe weniger bunt haben will, kann jedenfalls auch das leicht realisieren.

Wer die Hilfe verbessert, kann gerne seine Version der regexlab.html hier anhängen.

herbivore

PS: Fehler und Ungereimtheiten sind natürlich nicht ausgeschlossen. Für entsprechende Hinweise bin ich dankbar.

PPS: Die Version ist von 2007, aber trotzdem aktuell. Sie ist naturgemäß für ein damals verfügbares Framework kompiliert. Sollte sie auf aktuellen Rechnern nicht laufen, kann man sich leicht eine Version für das aktuelle/gewünschte Framework compilierten, da der Quellcode enthalten ist (damit die Umlaute stimmen, muss man den Compiler anweisen, die Codepage 850 zu verwenden: /codepage:850)

360 Beiträge seit 2005
vor 16 Jahren

Moin herbivore,

vielen Dank für dieses geniale Tool - wäre ich eher auf die Idee gekommen hier zu suchen, hätte mir das ne Menge Arbeit erspart...

Viele Grüße,
Markus 🙂

D
10 Beiträge seit 2007
vor 16 Jahren

auch von mir ein Dankeschön 🙂

T
13 Beiträge seit 2007
vor 15 Jahren

Ich muss mich den dankesagungen anschließen!
Dein tool erleichtert einem das leben ungemein!
Vielen herzlichen dank und frohe weihnachten 🙂

e
395 Beiträge seit 2007
vor 15 Jahren

👍 Das Tool ist absolut spitze 👍

nur ein makel... ich kann maximal 999 zeilen machen danch muss ich die bis dahin durchgetesteten rauslöschen und dan gehts erst weiter^^ ist aber nicht besonders schlimm

(bin gerade dabei alle relvanten zeilen auf etwaige abweichung hin zu überprüfen ~ 2500 zeilen) mustes also nicht ändern da sowas ehr die ausnahme ist was ich gerade mache

MfG Paul

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo el_panter,

die Begrenzung ist Absicht. Ich hatte sie mit 999 m.E. schon mehr als großzügig gewählt. Da der Quellcode verfügbar ist, kannst du die Begrenzung natürlich selbst aufheben.

herbivore

b
7 Beiträge seit 2008
vor 15 Jahren

Das ist ein sehr sehr starkes Teil! Hilft mir grad als Anfänger sehr gut! Klasse!

Vielen Dank!! 👍

Gruß,
bytebrain

E
55 Beiträge seit 2008
vor 15 Jahren

hi herbivore

vll könntest du noch folgende sachen implementieren 🙂

[:alnum:warn:    	Alphanumerische Zeichen: [:alpha:warn: und [:digit:warn:.
[:alpha:warn: 	Buchstaben: [:lower:warn: und [:upper:warn:.
[:blank:warn: 	Leerzeichen und Tabulator.
[:cntrl:warn: 	Steuerzeichen. Im ASCII sind das die Zeichen 00 bis 1F, und 7F (DEL).
[:digit:warn: 	Ziffern: 0, 1, 2,... bis 9.
[:graph:warn: 	Graphische Zeichen: [:alnum:warn: und [:punct:warn:.
[:lower:warn: 	Kleinbuchstaben1: nicht notwendigerweise nur von a bis z.
[:print:warn: 	Druckbare Zeichen: [:alnum:warn:, [:punct:warn: und Leerzeichen.
[:punct:warn: 	Zeichen wie: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ .
[:space:warn: 	Whitespace: Horizontaler und vertikaler Tabulator, Zeilen- und Seitenvorschub, Wagenrücklauf und Leerzeichen.
[:upper:warn: 	Großbuchstaben1: nicht notwendigerweise nur von A bis Z.
[:xdigit:warn: 	Hexadezimale Ziffern: 0 bis 9, A bis F, a bis f.
herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo EL_Broto,

das Regex-Lab soll ja hinsichtlich der Patternsyntax genau den Funktionsumfang von .NET haben. Daher ist es nicht sinnvoll, die Patternsyntax zu erweitern, denn es wäre ja unpraktisch, wenn man mit den Regex-Lab einen Pattern austüftelt könnte, der dann mit .NET gar nicht funktionieren würde.

herbivore

1.815 Beiträge seit 2005
vor 15 Jahren

Hallo!

Auch von mir mal ein Dankeschön an herbivore für dieses äußerst hilfreiche Tool. Hab's gerade zufällig beim stöbern im Forum entdeckt. Endlich kann man mal reg. Ausdrücke schnell testen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

F
10 Beiträge seit 2007
vor 15 Jahren

Hi,

das Programm ist wirklich spitze! Es ist übersichtlich, sehr komfortabel...einfach klasse!
Ein großes Dankeschön an herbivore.

D
55 Beiträge seit 2008
vor 15 Jahren

Danke fuer dieses geile Programm. Das erleichtert die Arbeit mit RegEx ungemein, ich will nicht mehr ohne dieses Tool arbeiten 🙂

Languages: C#, C, C++, Java, VB, PHP, ASP, HTML/XHTML, XML, CSS, JavaScript.
learning since: 1996
IDE's: Visual Studio 2008 Team Editon, Eclipse, Sharpdevelop / Monodevelop

d
91 Beiträge seit 2005
vor 15 Jahren

Hallo herbivore!

Vielen Dank für dein tolles Tool.

5.299 Beiträge seit 2008
vor 15 Jahren

Hi!

  • Kann man nicht was dranmachen, daß man erfolgreiche Tests, also einen bestimmten Input und ein Pattern, zusammen mit einer Bemerkung abspeichert? Manches braucht man doch mehrmals, oder Abwandlungen davon.

Der frühe Apfel fängt den Wurm.

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo ErfinderDesRades,

ein durchaus erwägenswerter Vorschlag. Ich werde mir überlegen, ob ich das einbaue.

herbivore

2.082 Beiträge seit 2005
vor 15 Jahren

Hey herbivore,

mach lieber einen Button für "Copy to Clipboard" rein 😁 welches das Pattern in die Zwischenablage kopiert.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo frisch,

hm, dass man einen fertigen Pattern oftmals kopieren will, versteht sich von selbst. Aber wenn man eh gerade den Pattern editiert hat, reicht dazu Ctrl-A und dann Ctrl-C. Daher werde ich die aufs Wesentliche konzentrierte Oberfläche nicht durch so einen Button "verschandeln". 🙂

Da jedoch der Quellcode vorliegt, kann sich natürlich jeder leicht selbst so einen Button einbauen.

herbivore

5.299 Beiträge seit 2008
vor 15 Jahren

Ah, Quellcode!
Habich gar nicht erkannt.
Für mich ist Quellcode, wenn eine .sln oder wenigstens eine .csproj vorliegt.

Der frühe Apfel fängt den Wurm.

0
767 Beiträge seit 2005
vor 15 Jahren

Ich verwende das schon seit einiger Zeit, einfach spitze.

Trotzdem 2 Verbesserungsvorschläge:

  1. Manchmal will man im Input mehrere Beispiel-Strings halten, und einzeln auswerten. Fein wärs, wenn hier wie beim Sql-Management-Studio nur der gerade markierte Teil ausgewertet wird (bzw, alles, wenn nichts markiert ist).

  2. Undo Funktion Strg-Z im Input um Änderungen rückgängig machen zu können...

loop:
btst #6,$bfe001
bne.s loop
rts

v
1 Beiträge seit 2005
vor 14 Jahren

Hi,

kleiner Verbesserungsvorschlag:

nebem der Textbox für die Eingabe der Pattern befindet sich das NumericUpDown-Control um zwischen den Matches umschalten zu können.

Genial wäre es nicht zwischen den Matches umschalten zu müssen, sondern die Anzeige der Groups als unterelemente von Matches farbig in einem Treeview mit mehreren Spalten anzuzeigen.
Das Control gibt es meines Achtens schon.

Vielleicht gefällt es ja.

Gruß
vornst

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 14 Jahren

Hallo 0815Coder,

es ist ja nicht meine Art, auf Vorschläge nicht (oder auch nur spät) zu reagieren. Ich habe denn auch schon angefangen ein Undo einzubauen, bin aber leider beim Testen hängen geblieben. Es wird noch ein bisschen dauern. Damit wäre Punkt 2 zumindest auf dem Weg.

Punkt 1 werden ich nicht einbauen. Das halte ich für zu spezifisch und auch für zu verwirrend, wenn man nur aus Versehen etwas markiert hat. Wenn du diese Funktion haben willst, ist es aber Dank des Quellcodes ein Leichtes, sie für dich selbst einzubauen.

Hallo vornst,

die Groups werden in einem mehrspaltigen ListView farbig angezeigt. In den Groups sind nur noch die Captures enthalten. Diese werden ebenfalls in einem mehrspaltigen ListView angezeigt, wenn man eine Group in dem ersten ListView auswählt. Außerdem wird bei der Auswahl einer Group in dem ListView in der Input-TextBox nur noch diese Group farbig angezeigt. Da es nur diese zwei Hierarchieebenen gibt (die Schachtelung der Gruppen innerhalb des Patterns ist ja im Match nicht abgebildet), sehe ich keinen Nutzen in einem TreeView, eher im Gegenteil. Aus meiner Sicht ist genau das, was du willst, implementiert. Es ist nur technisch ein wenig anders umgesetzt.

herbivore

a
14 Beiträge seit 2008
vor 14 Jahren

hi herbivore , klasse tool. so lernt man die formatierungen schneller

22 Beiträge seit 2008
vor 14 Jahren
Danke

Hallo herbivore!

Auch von meiner Seite, vielen Dank für das RegEx-Lab.

LG
Mighty

T
68 Beiträge seit 2006
vor 14 Jahren

ein spitze Tool, dass kann man einfach nur weiter empfehlen. Auch wenn du es schon 1000 mal gehört hast. Dankeschön!

87 Beiträge seit 2006
vor 13 Jahren

hallo,

ich möchte mich hier meinen Vorrednern anschließen!

Aber eine frage hätte ich dann doch noch gerne, als dann mal geschaut hab wie du das geschrieben hast stelle sich mir die frage: warum is die quellcode-datei in der dos codepage (437)? 🤔 bei mir werden die umlaute alle falsch dargestellt.

MfG

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 13 Jahren

Hallo TiltonJH,

die Codepage ist 850 😃 Wobei man der Gerechtigkeit halber sagen muss, dass die Unterschiede zu 437 nur Zeichen betrifft, die ich nicht verwendet habe.

Man kann Quellcode-Dateien in jeder beliebigen Codepage erstellen und muss dem Compiler dann nur sagen welche Code-Page man verwendet hat (z.B. /codepage:850).

Der Grund, dass ich 850 verwende, liegt einfach darin, dass ich (schon immer) auf der Kommandozeile arbeite und auch einen Kommandozeilen-Editor verwende. Was ISO-8859-1 für Windows-Anwendungen ist, ist Codepage 850 für Kommandozeilen-Programme.

Den Code könnte man mit einem einfachen C#-Programm leicht von 850 nach ISO-8859-1 konvertieren. Dazu müsste man ihn nur mit dem einen Encoding einlesen und dem anderen Encoding schreiben.

herbivore

87 Beiträge seit 2006
vor 13 Jahren

Hallo herbivore,

die problematik des encoding ist mir schon bekannt, aber mit 850 hast wohl sicher recht. 😁
es war eigentlich mehr die frage, ob das so gewollt war/ist. 😉

ein solches c#-programm gibt es schon, ich werde das wohl gleich hier mal als projekt veröffentlichen. 😁

hab da aber noch was anderes: in der regexlab.html ist auf zeile 123 ein fehler. da steht: "&lt;name>" es sollte aber wohl "\k<name>" heißen. 🤔

MfG

TiltonJH

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 13 Jahren

Hallo TiltonJH,

es war eigentlich mehr die frage, ob das so gewollt war/ist.

nein, das war nicht unbedingt gewollt. Wenn ich dran denke, verwende ich bei der nächsten Version Encoding.Default.

da steht: "&lt;name>" es sollte aber wohl "\k<name>" heißen.

Danke für den Hinweis. Ja, das k ist mir an sich tatsächlich verloren gegangen. Aber ich habe es gerade mal ausprobiert. Man braucht kein k anzugeben; &lt;name> funktioniert also auch. Deshalb werde ich es wohl so stehen lassen, zumal mir die Syntax ohne k besser gefällt und ich sie auch einleuchtender bzw. besser zu merken finde.

herbivore

C
92 Beiträge seit 2010
vor 12 Jahren

Hallo herbivore,

auch von mir vielen Dank für dieses tolle Programm!
Es hat mir meine Arbeit sehr erleichtert!

mfg Cuin

Gelöschter Account
vor 12 Jahren

Muss mich hier auch nochmal bedanken. Das Tool hilft mir so unglaublich beim entwickeln von Regex parsern. Vielen vielen Dank!

H
31 Beiträge seit 2010
vor 12 Jahren

Hallo Herbivore und alle anderen,

ich habe das Programm ein wenig meinen Bedürfnissen angepasst.
Jetzt wäre meine Frage, ob ich es hier auch wieder veröffentlichen darf.
Ich würde es natürlich mit Code zur freien Verwendung einstellen.
Wäre das in Ordnung bzw. besteht da überhaupt ein Interesse? 🙂

Ein paar Kleinigkeiten sind zwar noch nicht fertig, aber es kann nicht mehr wahnsinnig lange dauern bis es so weit ist.

Viele Grüße

Hotte

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 12 Jahren

Hallo Hotte,

freut mich, dass du das Regex-Lab weiterentwickelt hast und deine Version und deine Code hier veröffentlichen willst. Natürlich ist das alles nicht nur erlaubt, sondern auch erwünscht.

herbivore

H
31 Beiträge seit 2010
vor 12 Jahren

Hi Herbivore,

super, dann werde ich in Kürze einen Thread aufmachen und das Ganze einstellen.
😮)

EDIT: RegEx Studio

Viele Grüße

Hotte

C
48 Beiträge seit 2011
vor 11 Jahren

Hallo Herbivore,

auch wenn es schon oft gesagt wurde, kann ich nur wiederholen, wie nützlich das Tool ist.
Vielen Dank für deine Arbeit!

C#ler

In theory, there is no difference between theory and practice. But, in practice, there is.

The nice thing about the Java API is that if you don't like it, just wait two minutes — it will change. Doug Lyon

B
218 Beiträge seit 2012
vor 10 Jahren

Sehr nützliches Tool, vielen Dank.

Eine Frage hätte ich bzgl. Der Verwendung von

""

bzw.

&quot;.

Es ist ja üblich, dass man Pattern in der Form:

string pattern = @"pattern";

schreibt und die Anführungszeichen dann nicht durch

&quot;

sondern durch

""

angegeben werden.

Besteht die Möglichkeit, dies auch im Tool so zu verwenden oder muss man nachträglich die die Anführungsstriche ersetzen?
ersetzen?

Liebe Grüße,

BlackMatrix

Edit:

Beim Einfügen von einem langen string in das InputControl habe ich folgende Fehlermeldung erhalten:

Fehlermeldung:
System.AccessViolationException: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
bei System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.RichTextBox.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

herbivore Themenstarter:in
49.485 Beiträge seit 2005
vor 10 Jahren

Hallo BlackMatrix,

die Escape-Sequenzen brauchst du nur innerhalb von String-Literalen. Das hat mit Regex nichts zu tun. Da Regex-Lab die Eingabe in einem Eingabefeld entgegen nimmt, brauchst du keine der Escape-Sequenzen, die nur für String-Literale im Quellcode erforderlich sind, zu verwenden.

Diese Escape-Sequenzen musst du erst dann einfügen, wenn du den (fertigen) Pattern aus Regex-Lab in ein String-Literal im Quelltext übernimmst. Dafür gibt es in Regex-Lab keine Unterstützung.

Meine Empfehlung ist, für Regex-Pattern im Quellcode immer das @ vor dem String-Literal zu verwenden. Dann beschränken sich die Nacharbeiten auf das Doppeln der Anführungszeichen, das man leicht vor Hand oder - besonders bei längeren Pattern mit vielen Anführungzeichen - per Suchen-und-Ersetzen im Editor vornehmen kann.

Trotzdem steht es natürlich jedem, der möchte, offen, Regex-Lab um eine entsprechende Funktion zu erweitern. Der Quelltext liegt ja vor.

Wegen der Exception-Meldung wäre es nett, wenn du mir eine PM mit einer genauen Beschreibung, was du wie gemacht hast (wie lang war der String, wie lang war die längste Zeile, gab es Besonderheiten, lässt sich der Fehler reproduzieren usw.) schicken könntest. Vielen Dank!

Es ist bekannt, dass RichtextBoxen von sich aus Probleme mit sehr langen Zeilen (ohne Leerzeichen) haben. Das kann jeder in Notepad ausprobieren. Üblicherweise führt das aber nur zu endlosen Wartezeiten nicht zu abstürzen. Daher mein Wunsch nach genaueren Informationen per PM.

EDIT: Laut BlackMatrix ist der Fehler bisher nur ein einziges Mal aufgetreten und ist nicht reproduzierbar. Daher erfolgen erstmal keine weiteren Maßnahmen.

herbivore