|
» myCSharp.de Diskussionsforum |
|
|
|
Autor
 |
|
|
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: "\<name>" es sollte aber wohl "\k<name>" heißen.
MfG
TiltonJH
|
|
08.12.2009 18:16
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
Hallo TiltonJH,
Zitat: |
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.
Zitat: |
da steht: "\<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; \<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
|
|
08.12.2009 19:26
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegen mehr als 11 Monate. |
Cuin
myCSharp.de-Mitglied
Dabei seit: 31.05.2010
Beiträge: 92
Entwicklungsumgebung: Visual Studio 2010 Ultimate
|
|
Hallo herbivore,
auch von mir vielen Dank für dieses tolle Programm!
Es hat mir meine Arbeit sehr erleichtert!
mfg Cuin
|
|
22.11.2010 23:10
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegen mehr als 4 Monate. |
|
Muss mich hier auch nochmal bedanken. Das Tool hilft mir so unglaublich beim entwickeln von Regex parsern. Vielen vielen Dank!
|
|
24.03.2011 14:06
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegen mehr als 3 Monate. |
Hotte
myCSharp.de-Mitglied
Dabei seit: 18.07.2010
Beiträge: 31
Entwicklungsumgebung: VS 2010
|
|
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.
Hotte hat dieses Bild (verkleinerte Version) angehängt:
 Volle Bildgröße
|
|
18.07.2011 14:59
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
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
|
|
18.07.2011 16:01
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr. |
C#ler
myCSharp.de-Mitglied
Dabei seit: 02.04.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010
|
|
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
|
|
31.07.2012 15:27
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegen mehr als 3 Monate. |
BlackMatrix
myCSharp.de-Mitglied
Dabei seit: 10.11.2012
Beiträge: 218
|
|
Sehr nützliches Tool, vielen Dank.
Eine Frage hätte ich bzgl. Der Verwendung von
bzw.
Es ist ja üblich, dass man Pattern in der Form:
C#-Code: |
string pattern = @"pattern";
|
schreibt und die Anführungszeichen dann nicht durch
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) |
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von BlackMatrix am 12.11.2012 20:08.
|
|
12.11.2012 19:58
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
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
|
|
13.11.2012 08:59
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegen mehr als 5 Monate. |
Programmierhans
myCSharp.de-Poweruser/ Experte
Dabei seit: 05.04.2005
Beiträge: 4.221
Entwicklungsumgebung: VS2003-VS2013 / SAP WebIDE Herkunft: Zentralschweiz
|
|
Auch mir hat das Teil sehr bei der Ausarbeitung von Ausdrücken geholfen (und nochmal ein Dank an herbivore).
Nur so als Tipp: Wenn ein Ausdruck im Tester funktioniert... aber im .Net Code nicht, dann kann es eigentlich fast nur daran liegen, dass per Default im Tester IgnoreCase geflaggt ist... (Habe ich dann nach mehr als 20 minütiger Suche auch irgendwann festgestellt).
|
|
08.05.2013 13:50
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
Hallo Programmierhans, hallo zusammen,
danke für den Hinweis! Ich habe diesen bzw. die die folgenden Tipps in Kurzform in den Startbeitrag aufgenommen.
Klar, man sollte alle Flags so übernehmen, wie sie in Regex-Lab gesetzt sind bzw. wie man sie in Regex-Lab gesetzt hat. Bzw. sollte man die Flags in Regex-Lab gleich so setzen, wie man sie später im Code haben möchte.
Aus meiner Sicht gibt es einen weiteren Grund, warum ein Pattern, der in Regex-Lab funktioniert, im Code nicht auf Anhieb funktioniert, nämlich wenn man ihn in ein String-Literal schreibt, ohne richtig zu escapen. Um nicht jeden enthaltenen Blackslash verdoppeln zu müssen, bietet es sich an, vor das String-Literal ein @ zu schreiben (siehe [FAQ] Was bedeutet das @ (=at) vor String-Literalen? Und: Wissenswertes zu Escape-Sequenzen). Selbst dann muss man allerdings noch darauf achten, wenn im Pattern Anführungszeichen (insbesondere zwei Anführungszeichen hintereinander) enthalten sind. Anführungszeichen müssen in String-Literalen mit @ gedoppelt werden, um sie zu escapen.
herbivore
|
|
09.05.2013 06:34
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr. |
|
Geiles Teil,
schmiert auch bei codepoints außerhalb der Basic Multilingual Plane (BMP) nicht ab, habe heute erst Expresso damit zum Absturz gebracht, während Regex-Lab einen astreinen capture hatte.
Meine regex: [\u0009\u000a\u000d\u0020-\ud7ff\ue000-\ufffd]|([\ud800-\udbff](?=[\udc00-\udfff]))|((?<=[\ud800-\udbff])[\udc00-\udfff])
Mein Input: (codepoint 128685)
|
|
20.11.2014 14:41
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
Hallo yetibrain,
das freut mich zu hören. Ich möchte mich jedoch nicht mit fremden Federn schmücken. Das Lob gebührt den Entwicklern des .NET-Framworks, deren Regex-Methoden ich lediglich aufrufe.
herbivore
|
|
20.11.2014 22:03
|
E-Mail |
Beiträge des Benutzers |
zu Buddylist hinzufügen
|
|
|
|