Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
* . + ? ( ) [ ] { } ^ |
Also das nächste Zeichen nach einem \ nur als normalen Text verarbeiten
(
außer das \s
Wenn man wirklich ein s will geht das ja ohne \
)
erst mal danke an ComFreek für die Wiederbelebung des Coding Quiz
Ich werde wohl eine Lösung in Haskell einreichen. Momentan bin ich bei Stufe 3+: ohne Brute Force, aber mit „vollen“ regulären Ausdrücken (also inklusive Wiederholungen).
Was die Sache vielleicht etwas einfacher machen könnte: um sämtliche reguläre Ausdrücke zu erfassen, genügt es folgende Konstrukte zu unterstützen:
Leerer Ausdruck („“)
Einzelnes Zeichen („a“)
Verkettung zweier Ausdrücke („ab“)
Alternative mit genau zwei Möglichkeiten („a|b“)
Unbeschränkte Wiederholung („a*“)
Alles weitere lässt sich auf diese Basiskonstrukte zurückführen.
Die Klassen sind beliebig schachtelbar (z.B. kann eine VariableCountSequence einen OrBranch beinhalten, der selbst aus irgendwelchen anderen Tokens besteht).
Ich bin gerade dabei, den Parser lauffähig zu kriegen. Dies ist in der Tat arbeitsaufwändiger, als der Lösungsteil (momentan funktioniert ja alles, nur man muss händisch die Objekte erstellen und verschachteln).
Der Nutzer gibt einen RegExp ein (Syntax allerdings beschränkt, siehe 1. Beitrag) und dein Programm findet einen Text, der auf das Muster des regulären Ausdrucks passt.
Ah, okay. Gut, wenn das so ist, weiß ich, was zu tun ist. Ich dachte nur, dass es da einen vorgegebenen RegExp gibt und man dann dazu einen Text finden soll – was allerdings im Nachhinein betrachtet doch zu einfach wäre.