Schreiben eines Parsers für reguläre Ausdrücke

Auch nach Jahren des Programmierens schäme ich mich zu sagen, dass ich reguläre Ausdrücke nie wirklich vollständig verstanden habe. Wenn ein Problem einen regulären Ausdruck erfordert, kann ich normalerweise (nach einigem Hin und Her in Bezug auf die Syntax) einen passenden finden, aber es ist eine Technik, die ich immer öfter benutze.

So, um mich selbst zu unterrichten und reguläre Ausdrücke zu verstehenrichti, Ich habe beschlossen, das zu tun, was ich immer tue, wenn ich versuche, etwas zu lernen. versuchen Sie, etwas Ehrgeiziges zu schreiben, das ich wahrscheinlich aufgeben werde, sobald ich das Gefühl habe, genug gelernt zu haben.

Zu diesem Zweck möchte ich einen Parser für reguläre Ausdrücke in Python schreiben. In diesem Fall bedeutet "genug lernen", dass ich einen Parser implementieren möchte, der Perls erweiterte Regex-Syntax vollständig versteht. Es muss jedoch nicht der effizienteste Parser sein oder sogar unbedingt in der realen Welt verwendet werden können. Es muss lediglich ein Muster in einer Zeichenfolge korrekt finden oder nicht finden.

Die Frage ist, wo fange ich an? Ich weiß fast nichts darüber, wie reguläre Ausdrücke analysiert und interpretiert werden, abgesehen von der Tatsache, dass es sich in irgendeiner Weise um einen endlichen Automaten handelt. Vorschläge zur Lösung dieses entmutigenden Problems sind sehr willkommen.

BEARBEITEN Ich sollte das klarstellen, während ich gehe zuimplementiere der Regex-Parser in Python, ich bin nicht sonderlich besorgt darüber, in welcher Programmiersprache die Beispiele oder Artikel geschrieben sind. Solange es nicht in Brainfuck ist, werde ich wahrscheinlich genug davon verstehen, damit es sich lohnt.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage