Schlüsseltechnologie

STP021: Reguläre Ausdrücke


Listen Later

ttimeless hat sich ein Thema gewünscht und mit Beginn von Xyrills Recherchen angefangen, es zu bereuen.

Es stellt sich heraus, dass das Thema zwar abstrakt, aber dennoch spannend ist. Außerdem gibt es im zweiten Teil der Sendung noch praktische Dinge zu lernen.

Shownotes
  • Motivation: reguläre Ausdrücke verstehen
    • etwas Theorie ist notwendig, um die Eigenschaften und Grenzen von regulären Ausdrücken zu verstehen
    • quasi eine Erstsemestervorlesung -> Anekdote Xyrill: Büchlein "Einblick ins Studium"
    • Siehe Wikipedia:

      Grammatik bezeichnet in der Linguistik jede Form einer systematischen Sprachbeschreibung. Dabei steht der Begriff der Grammatik einmal für das Regelwerk selbst, auf der anderen Seite aber auch für die Theorie über eine bestimmte Sprache oder Sprachfamilie.

      • im Kontext der Informatik: formale Grammatiken für formale Sprachen

        • formale Sprache: Menge von Symbolketten ("Wörter"), die aus Symbolen ("Alphabet") zusammengesetzt werden
        • formale Grammatik: endlich große Beschreibung einer (im Allgemeinen unendlich großen) formalen Sprache
        • Beispiele: Programmiersprachen, Tastenkombos in Videospielen, Münzeinwurf in Verkaufsautomat
        • Abwägung: komplexere Grammatiken sind flexibler, aber auch aufwändiger (z.B. Tastatureingaben vs. Sprachsteuerung)
        • Chomsky-Hierarchie: Klassifikation von formalen Grammatiken in aufsteigender Striktheit und absteigender Flexibilität

          • Beschreibung der entsprechenden formalen Grammatiken: hier nicht, zu technisch
          • zu jeder Ebene der Chomsky-Hierarchie gehört ein Maschinenmodell, dass entsprechende Grammatiken akzeptieren kann
          • Typ 3: reguläre Grammatiken mittels endlichem Zustandsautomat (Beispiel: Münzeinwurf in Verkaufsautomat)
          • Typ 2: kontextfreie Grammatiken mittels Kellerautomat (Beispiel: balancierte Klammerpaare)
          • Typ 1 und 0 mittels Turingmaschinen (erst mit beschränktem, dann mit unbeschränktem Speicher)
          • Beispiel für grafische Repräsentation von Grammatiken: siehe SQLite-Dokumentation

          • reguläre Grammatiken im Alltag: reguläre Ausdrücke; formale Definition mit vier Grundbausteinen

            Grundbaustein
            Beispielausdruck
            Findet z.B.
            Zeichen(folge)
            Ausdruck
            Ausdruck
            Alternative
            Ausdruck|Ausdrücke
            Ausdruck und Ausdrücke
            Gruppierung
            Ausdr(uck|ücke)
            Ausdruck und Ausdrücke
            Sternquantor
            to*ll
            tll, toll, tooll, toooll, etc.
            • in der Praxis weitere Bausteine, um häufige Anwendungen zu vereinfachen
            • Zusatzbaustein
              Definition
              Beispielausdruck
              Findet z.B.
              Zeichenklasse
              [ABC...] = A|B|C|...
              positive Ganzzahl: 0|[1-9][0-9]*
              0, 42, 900, aber nicht 0815
              feste Zeichenklasse
              \s für Whitespace, \d = [0-9] für Ziffern, etc.
              beliebiges Zeichen
              .
              Klammerausdruck: (.*)
              (2 + 4), (siehe oben), aber auch (siehe oben (oder nicht)
              Fragezeichenquantor
              A? = (|A)
              Ganzzahl mit Vorzeichen: [+-]?(0|[1-9][0-9]*)
              +0, -42, 23
              Fixquantor
              z.B. A{3} = AAA, A{2,4} = AAA?A?
              Postleitzahl: [0-9]{5}
              01127, 50616
              Plusquantor
              A+ = AA*
              Domainname: ([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+
              www.example.com
              Anker
              ^ für Zeilenanfang, $ für Zeilenende, \b für Wortgrenze
              Schulz\b
              Schulz, aber nicht Schulze
              • Problem in der Praxis: Escaping

                • z.B. Klammern sind Teil der Syntax; um eine Klammer im Eingabetext darzustellen, schreibt man "\("
                • Regexen lernen

                  • Online
                    • LearnRegex ist ein interaktives Tutorial zum Erlernen von regulären Ausdrücken, in englischer Sprache.
                    • Mit Regex Crossword kann man spielerisch besonders das Lesen regulärer Ausdrücke üben.
                    • Apps
                      • Regex-Kreuzworträtsel auf dem Mobiltelefon
                      • Mehrere Ausdrücke mit regulären Ausdrücken erfassen bzw. ausschließen
                      • ...more
                        View all episodesView all episodes
                        Download on the App Store

                        SchlüsseltechnologieBy Xyrillian Noises


                        More shows like Schlüsseltechnologie

                        View all
                        Chaosradio by Chaos Computer Club Berlin

                        Chaosradio

                        7 Listeners

                        Freak Show by Metaebene Personal Media - Tim Pritlove

                        Freak Show

                        10 Listeners

                        Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                        Logbuch:Netzpolitik

                        7 Listeners

                        Methodisch inkorrekt! by Methodisch inkorrekt!

                        Methodisch inkorrekt!

                        14 Listeners

                        c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

                        c’t uplink - der IT-Podcast aus Nerdistan

                        7 Listeners

                        Jung & Naiv by Tilo Jung

                        Jung & Naiv

                        40 Listeners

                        heiseshow by heise online

                        heiseshow

                        2 Listeners

                        Übermedien by Übermedien

                        Übermedien

                        3 Listeners

                        Lage der Nation - der Politik-Podcast aus Berlin by Philip Banse & Ulf Buermeyer

                        Lage der Nation - der Politik-Podcast aus Berlin

                        220 Listeners

                        Die Wochendämmerung - Der stabile Wochenrückblick by Katrin Rönicke und Holger Klein (hauseins)

                        Die Wochendämmerung - Der stabile Wochenrückblick

                        15 Listeners

                        Sicherheitshalber by Der Podcast zur sicherheitspolitischen Lage in Deutschland, Europa und der Welt.

                        Sicherheitshalber

                        45 Listeners

                        Bit-Rauschen: Der Prozessor-Podcast von c’t by c't Magazin

                        Bit-Rauschen: Der Prozessor-Podcast von c’t

                        1 Listeners

                        Legion by rbb | NDR | Undone

                        Legion

                        5 Listeners

                        Haken dran – das Social-Media-Update der c't by Gavin Karlmeier

                        Haken dran – das Social-Media-Update der c't

                        2 Listeners

                        Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

                        Passwort - der Podcast von heise security

                        3 Listeners