Regular Expression: Unterschied zwischen den Versionen
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
Regular Expression (RE) sind Suchmuster zur Formulierung komplexer Suchanfragen | |||
''regular expression'',''RegExp'',''Regular expression'' | * ''regular expression'',''RegExp'',''Regular expression'' | ||
* [https://de.wikipedia.org/wiki/Zeichenkette Zeichenkette] zur Beschreibung von Zeichenketten | * [https://de.wikipedia.org/wiki/Zeichenkette Zeichenkette] zur Beschreibung von Zeichenketten mithilfe [https://de.wikipedia.org/wiki/Syntax syntaktischer] Regeln | ||
; Verwendung | ; Verwendung |
Version vom 6. Oktober 2025, 13:42 Uhr
Regular Expression - Sprache zur Beschreibung von Zeichenketten
Beschreibung
Regular Expression (RE) sind Suchmuster zur Formulierung komplexer Suchanfragen
- regular expression,RegExp,Regular expression
- Zeichenkette zur Beschreibung von Zeichenketten mithilfe syntaktischer Regeln
- Verwendung
- Nahezu alle Programmiersprachen existieren Implementierungen
- Standards und Programme
- Syntax ist standardisiert
- wird von verschiedenen Programmen verstanden
- beispielsweise sed, egrep, expr, perl
- Gierigkeit
Das interpretierende Programm versucht, aus einer größeren Zeichenmenge (i. A. einer Zeile) eine Teilmenge zu finden, die zu der RE "passt"
Oft gibt es mehrere Teilmengen, die passen
- In diesem Fall wird die größte Teilmenge als Ergebnis verwendet
- Pattern Matching
- Anwendung
Reguläre Ausdrücke können als Filterkriterien in der Textsuche verwendet werden, indem der Text mit dem Muster des regulären Ausdrucks abgeglichen wird
- So ist es etwa möglich, alle Wörter aus einer Wortliste herauszusuchen, die mit S beginnen und auf D enden - ohne die dazwischenliegenden Buchstaben und wahlweise deren Anzahl explizit vorgeben zu müssen
Zeichenketten finden
Eine häufige Anwendung regulärer Ausdrücke besteht darin, spezielle Zeichenketten in einer Menge von Zeichenketten zu finden
- Die im Folgenden angegebene Beschreibung ist eine (oft benutzte) Konvention, um Konzepte wie Zeichenklasse, Quantifizierung, Verknüpfung und Zusammenfassen konkret zu realisieren
- Metazeichen
- Hierbei wird ein regulärer Ausdruck aus den Zeichen des zugrunde liegenden Alphabets in Kombination mit den Metazeichen [ ] ( ) { } | ? + - * ^ $ \ . (teilweise kontextabhängig) gebildet
- Die Meta-Eigenschaft eines Zeichens kann durch ein vorangestelltes Backslash-Zeichen aufgehoben werden
- Alle übrigen Zeichen des Alphabets stehen für sich selbst
- Textersetzungen
- Ein weiteres Beispiel für den Einsatz als Filter ist die Möglichkeit, komplizierte Textersetzungen durchzuführen
- Neben den aufgeführten analytischen Aufgaben können reguläre Ausdrücke auch verwendet werden, um Mengen von Wörtern zu erzeugen, ohne jedes Wort einzeln angeben zu müssen
- So lässt sich etwa ein Ausdruck angeben, der bei einer gegebenen (Maximal-)Zeichenanzahl alle denkbaren Zeichenkombinationen ("Wörter") erzeugt, die mit S beginnen und mit D enden
- Auf diese Weise können etwa systematisch E-Mail-Adressen (vorwiegend der Teil vor dem @) für den Spam-Versand generiert werden
Erweiterungen
Die meisten heutigen Implementierungen unterstützen Erweiterungen wie Rückwärtsreferenzen (backreferences). Hierbei handelt es sich nicht mehr um reguläre Ausdrücke im Sinne der theoretischen Informatik, denn die so erweiterten Ausdrücke beschreiben nicht mehr notwendigerweise Sprachen vom Typ 3 der Chomsky-Hierarchie
- Die folgenden Syntaxbeschreibungen beziehen sich auf die Syntax der gängigen Implementierungen mit Erweiterungen, sie entsprechen also nur teilweise der obigen Definition aus der theoretischen Informatik
Anwendung regulärer Ausdrücke
Ken Thompson nutzte diese Notation in den 1960ern, um qed (eine Vorgängerversion des Unix-Editors ed) zu bauen und später das Werkzeug grep zu schreiben
Seither implementieren viele Programme und Bibliotheken von Programmiersprachen Funktionen, um reguläre Ausdrücke zum Suchen und Ersetzen von Zeichenketten zu nutzen
Beispiele für Regular expressionp-Implementierungen
Programme | Bibliotheken der Programmiersprachen | |
Auch die Textverarbeitung und die Tabellenkalkulation des Office-Paketes OpenOffice.org bieten die Möglichkeit, mit regulären Ausdrücken im Text zu suchen
Implementierungen
Basic Regular Expressions (BRE) | "grundlegende" reguläre Ausdrücke |
Extended Regular Expressions (ERE) | "erweiterte" reguläre Ausdrücke |
Perl Compatible Regular Expressions (PCRE) | In Programmiersprachen haben sich überwiegend die Perl Compatible Regular Expressions (PCRE) durchgesetzt, die sich an der Umsetzung in Perl orientieren |
Einige Programme, etwa der Texteditor Vim, ermöglichen, zwischen verschiedenen Syntaxen zu wechseln
- siehe POSIX.2
Anhang
Siehe auch
Links
Weblinks