Suchergebnisse

Suchergebnisse 1-12 von insgesamt 12.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Implementiere doch einfach selbst einen endlichen Automaten der alle Sprachen akzeptiert die mit [Pla... oder (Pla.... beginnen, beliebig viele Zeichen folgen, dann ein (H) folgt, beliebig viele Zeichen darauffolgend (W)/[W] akzeptiert und mit beliebig vielen Zeichen endet. _

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Zitat von ErfinderDesRades: „Jo - mach du das!“ Aber dann hätte er doch nichts zu tun (;? Einen endlichen Automaten zu realisieren ist extrem simpel. Wird halt bei seinem Beispiel extrem viele Zustände haben, ist aber vermutlich dennoch effizienter als das was er da gerade versucht. Alternativ muss er ja nicht unbedingt auf Buchstaben arbeiten - er kann ja einfach das Alphabet über ganze Wörter definieren - das reduziert die Anzahl der Zustände drastisch.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Endliche Automaten hat man im ersten Semester im Modul theoretische Informatik. Da implementiert man dann auch einen endlichen Automaten der eine bestimmte Sprache akzeptiert. Das sind nur Zustandswechsel. Was soll bitteschön daran schwer sein? Zustand q0, dort liest er ein Wort, wechselt entweder zu q1, oder q2, andere Wörter führen jeweils wieder zu sich selbst, bis der ein [...]/(...) findet und wieder Zustand wechselt, bis er im akzeptierenden Zustand ist (zB weil es ein Epsilon las, denn di…

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Nein, das ist ziemlich unschön was du da machst. Endlich Automaten arbeiten mit Zuständen. Pro eingelesenes Wort wird entschieden, welcher Zustand folgt. RegEx (also die Klasse, ansonsten ist es einfach die Sprache) ist NICHTS anderes. Es parst einfach ein gewisses Pattern und erzeugt dazu einen passenden endlichen Automaten der diese Sprache akzeptiert. Es gibt zu jedem regulären Ausdruck einen passenden Automaten (Beweis erfolgt über Kombination von Blackbox-Automaten). Aber im ernst, statt zu…

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    .... es ist RegEx (regular Expression => reguläre Ausdrücke => endliche Automaten) was ich hier schreibe, ich habe dir als Tipp nur mitgeben wollen, selbst einen endlichen Automaten zu erstellen, statt den dir generieren zu lassen. So kannst du schneller vorgehen und zudem an beliebig vielen Stellen optimieren. Das war kein OffTopic was ich schrieb.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Hier mal der endliche Automat das Sprachen der Form (...) (a) ... (b) ... akzeptiert: (Versteckter Text) Aufruf: C#-Quellcode (26 Zeilen) Kann sein, dass es noch hier und da Fehler gibt, hab es' auf die Schnelle implementiert. Dasselbe analog für [...] [x] ... [y] ... Ich habe "item..." als beliebig viele Zeichen interpretiert. Falls dem nicht so ist, sieht der Automat ein wenig anders aus. Aber es soll ja ein Anreiz sein, dass du das selbst implementierst. @ErfinderDesRades Es ist einfach - was…

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Naja, wenn du meinst. Dennoch empfehle ich dir endliche Automaten zu verstehen, statt einfach irgendwelche Pattern (z.B. try&error-mäßig) zu tippen. Das ist kein Hexenwerk, endliche Automaten sind simpel, auch wenn es nicht jeder so sieht.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Guck dir einfach mal youtu.be/OnqrHNw03VI an. Du solltest schon verstehen was RegEx da im Hintergrund ungefähr macht.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Zitat von ErfinderDesRades: „^[\[\(](.*)[\]\)]\s*[\[\(]([a-zA-Z])[\]\)](.*)[\[\(]([a-zA-Z])[\]\)](.*)“ Ist da nicht ein kleiner Fehler? Müssen die Leerzeichen nach jeder eckigen Klammer nicht existieren? Also: Quellcode (1 Zeile) - korrekt Quellcode (1 Zeile) - sollte doch inkorrekt sein? Also ohne Kleene-Star: Quellcode (1 Zeile) oder Quellcode (1 Zeile)

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Zitat von Facebamm: „Also nehm ich den Zeitaufwand für endliche Automaten und vergleich den mit einem RegexPatter zu schreiben muss ich sagen, gefällt mir regex mehr allein schon weil ich ohne mühe Dinge ändern kann Zb: Gruppen hinzufügen, oder sobald eine änderung auftritt sie in weniger als 2min ins pattern bekomme.“ Kein Zweifel ;), aber sein Problem war ja die Performance - und weil das Problem eher simpel ist, wäre ein selbst konstruierter, endlicher Automat wahrscheinlich die bessere Alter…

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Ok, dann hatte @ErfinderDesRades das schon längst.

  • Benutzer-Avatarbild

    RegEx IsMatch ist langsam

    φConst - - Sonstige Problemstellungen

    Beitrag

    Addendum: Mir fällt ein: Es ist unsinnig die beiden Fällen (jeweils eckige Klammern, und runde Klammern) im regulären Ausdruck auszuformulieren. Mach einfach ein string.replace("(", "[").replace(")", "]"); und prüfe ausschließlich auf die eckigen Klammern - das sollte den Prozess eventualiter beschleunigen. Im Grunde sind diese Sprachen nämlich äquivalent - sie unterscheiden sich nur in einem einzelnen Zeichen. Warum also bitteschön sowohl den Fall '(', als auch den Fall '[' separat behandeln? D…