Regex - nettes kleines Tutorial

Ich werds mal genauer ansehen. Bist Du irgendwie mit der Seite 
verbandelt?

Mal ne Frage: kennt jemand ein theoretische Paper/Seite zu regular 
expressions? Ich habe mal aufgeschnappt das regex eigentlich finite 
state machines sind. Dazu wüsste ich gerne mehr. Auch ob es 
grundsätzliche Abschätzungen zur Komplexität (O Notation) gibt.
Dumdi D. schrieb:
> Ich werds mal genauer ansehen. Bist Du irgendwie mit der Seite
> verbandelt?
>
> Mal ne Frage: kennt jemand ein theoretische Paper/Seite zu regular
> expressions? Ich habe mal aufgeschnappt das regex eigentlich finite
> state machines sind. Dazu wüsste ich gerne mehr. Auch ob es
> grundsätzliche Abschätzungen zur Komplexität (O Notation) gibt.

Ja, FSMs können reguläre Ausdrücke "erkennen". Um sich damit weiter zu 
befassen Google doch mal nach formalen Sprachen und Chomsky-Hierarchie.
OP
Dumdi D. schrieb:
> Ich werds mal genauer ansehen. Bist Du irgendwie mit der Seite
> verbandelt?

Nee, überhaupt nicht! Bin selbst erst gestern Abend darüber gestoplert, 
weil ich das für ein aktuelles Projekt brauche.

Bisher waren mir die Tutorials einfach zu umfangreich bzw. nur theorie. 
Hier hat man halt ein schönes Böxchen, mit dem man das gleich 
ausprobieren/experimentieren kann.

> Mal ne Frage: kennt jemand ein theoretische Paper/Seite zu regular
> expressions? Ich habe mal aufgeschnappt das regex eigentlich finite
> state machines sind. Dazu wüsste ich gerne mehr. Auch ob es
> grundsätzliche Abschätzungen zur Komplexität (O Notation) gibt.

Gibt's da nichts auf Wikipedia darüber ???
Dumdi D. schrieb:
> Mal ne Frage: kennt jemand ein theoretische Paper/Seite zu regular
> expressions? Ich habe mal aufgeschnappt das regex eigentlich finite
> state machines sind. Dazu wüsste ich gerne mehr.

Das Stichwort ist "Automatentheorie". Wird gerne mit "Formale Sprachen" 
(Chomsky Hierarchie) zusammengelegt, weil es gut zusammen passt.

Dazu gibts Bücher aus dem Bereich theoretischer Informatik, und mit 
etwas Glück brauchbare Vorlesungsskripte. Standardwerk dürfte das hier 
sein, auf dem Gebrauchtmarkt dürften sich ältere Fassungen aber 
wesentlich billiger finden lassen: 
https://www.amazon.de/Einführung-Automatentheorie-Formale-Sprachen-Komplexität/dp/3827370205
Dumdi D. schrieb:
> Nur zur Bestätigung: die vorgeschlagenen Bücher behandeln auch regex(von
> einem theoretischen Standpunkt aus), habe ich ao richtig verstanden?

Allein in beiden Titeln steht schon was von Theorie. Denkst du die 
richten sich an Arduino-Nutzer? Das ist alles Stoff der in den Bereich 
"Theoretische Informatik" fällt.
Gast
Dumdi D. schrieb:
> die vorgeschlagenen Bücher behandeln auch regex(von
> einem theoretischen Standpunkt aus), habe ich ao richtig verstanden?

Ja, aber Regex an sich ist aus theoretischer Sicht nicht weiter 
spannend, sind halt Chomsky-3-Sprachen mit den entsprechenden 
Eigenschaften.
Cyblord -. schrieb:
> Dumdi D. schrieb:
>> Nur zur Bestätigung: die vorgeschlagenen Bücher behandeln auch regex(von
>> einem theoretischen Standpunkt aus), habe ich ao richtig verstanden?
>
> Allein in beiden Titeln steht schon was von Theorie. Denkst du die
> richten sich an Arduino-Nutzer? Das ist alles Stoff der in den Bereich
> "Theoretische Informatik" fällt.

Haha. witzig. Nein, das es theoretisch ist glaube ich. Hätte nur sein 
können, das die Verbindung zu Regex nicht geschlagen wird und nur 
Automatentheorie behandelt.
Dumdi D. schrieb:
> Haha. witzig. Nein, das es theoretisch ist glaube ich. Hätte nur sein
> können, das die Verbindung zu Regex nicht geschlagen wird und nur
> Automatentheorie behandelt.

Es ist gut möglich dass Reguläre Ausdrücke wie sie praktisch z.B. in der 
Programmierung vorkommen nicht explizit behandelt werden. Dafür gibt es 
sicher eigene Bücher. Du fragtest aber auch explizit nach deren 
theoretischen Grundlagen und genau davon handeln diese Bücher. Reguläre 
Ausdrücke welche eine reguläre (sprich typ 3) Sprache beschreiben und 
durch eine FSM erkannt werden können. Genau das macht ja auch eine RegEx 
Library, um einen Match festzustellen. Es erzeugt eine FSM aus dem 
regulären Ausdruck und jagt die Eingabe da durch.
Moderator Persönliche Seite
Dumdi D. schrieb:
> Oder ist das irgendwie offensichtlich wie das funktioniert?

Es gibt ja nun wahrlich genügend öffentliche Implementierungen für
reguläre Ausdrücke inzwischen, beginnend von den UNIX-Originalen bis
hin zu erweiterten regulären Ausdrücken, wie sie heute üblich sind –
ihrer Herkunft nach oft als "Perl compatible REs" (pcre) bezeichnet.
Jörg W. schrieb:
> Es gibt ja nun wahrlich genügend öffentliche Implementierungen für
> reguläre Ausdrücke inzwischen, beginnend von den UNIX-Originalen bis
> hin zu erweiterten regulären Ausdrücken, wie sie heute üblich sind –
> ihrer Herkunft nach oft als "Perl compatible REs" (pcre) bezeichnet.

Danke für den Hinweis, hätte ja sein können, das jemand mal 
aufgeschrieben hat wie man das im Prinzip macht und nicht das man sich 
das aus Code zusammensuchen muss.
Gast
Dumdi D. schrieb:
> Cyblord -. schrieb:
>> Hier steht z.B. wie das geht:
>>
>> RegEx - > NFA -> DFA -> FSM
>>
>>
> 
https://www.gamedev.net/resources/_/technical/general-programming/finite-state-machines-and-regular-expressions-r3176
>
> Super. Danke. Ich habe dank eurer Stichworte auch noch das folgende
> gefunden (falls irgendjemand anderes dieselbe Frage hat)
> https://swtch.com/~rsc/regexp/regexp1.html

Zwei nette Links :) Alles nochmal relativ komprimiert dargestellt was 
wichtig dabei ist. Ist auch ne nette Fingerübung zum selber 
programmieren.
OP
Wer noch was weiterführendes sucht:

Hier ein toller Online-Editor: https://regex101.com/

Am Anfang etwas unübersichtlich, aber der Informationsgehalt ist enorm. 
Auch zum "debuggen" gut geeignet.

Und hier noch ein Tutorial: 
https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/

Ist teilweise sehr prosaisch, und leider nicht interaktiv, aber dann 
doch interessant, weil auch die "positive lookahead / lookbehind" 
erklärt werden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.