Benutzer-Werkzeuge

Webseiten-Werkzeuge


regular_expressions

Dies ist eine alte Version des Dokuments!


Regular Expressions

Eine Regular Expression (abgekürzt RegExp, oder RegEx) ist eine Zeichenkette, die eine Mengen von Zeichenketten mit Hilfe von syntaktischen Regeln beschreibt.

Zeichenauswahl

RegExp Bedeutung
[abc] eines der Zeichen a, b oder c
[0-2] eine Ziffer von 0 bis 2
[^a] ein beliebiges Zeichen außer a

POSIX-Zeichenklassen

RegExp Bedeutung
[:cntrl:] Steuerzeichen
[:print:] Druckbare Zeichen: [:alnum:], [:punct:] und Leerzeichen
[:space:] Whitespace: Horizontaler und vertikaler Tabulator, Zeilen- und Seitenvorschub, Wagenrücklauf und Leerzeichen
[:blank:] Leerzeichen oder Tabulator
[:graph:] Graphische Zeichen: [:alnum:] oder [:punct:]
[:punct:] Satzzeichen wie: ! # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
[:alnum:] Alphanumerische Zeichen: [:alpha:] oder [:digit:]
[:xdigit:] Hexadezimale Ziffern: 0 bis 9, A bis F, a bis f
[:digit:] Die Ziffern 0 bis 9
[:alpha:] Buchstaben: [:lower:] oder [:upper:]
[:lower:] Kleinbuchstaben
[:upper:] Großbuchstaben

Die POSIX-Zeichenklassen müssen innerhalb einer Zeichenauswahl [] stehen. Beispiel: [[:alnum:]]

Quantoren

RegExp Bedeutung
? null- oder einmal
+ mindestens einmal (entspricht {1,})
* beliebig oft (auch keinmal) (entspricht {0,})
{n} exakt n-mal (entspricht {n,n})
{min,} mindestens min-mal
{min,max} mindestens min-mal, max-mal
{0,max} maximal max-mal

Spezielle Zeichen

RegExp Bedeutung
. beliebiges Zeichen
\ Escapezeichen
^ Zeilenanfang
$ Zeilen- oder Stringende

Gruppen und Backreferences

RegExp Bedeutung
() Gruppe
\n Zugriff auf n-te Gruppe

Die unterstützen Features unterscheiden sich je nach Implementierung/Sprache.

PHP (PCRE)

Python

Python unterstützt die POSIX-Zeichenklassen wie [:alpha:] oder [:alnum:] nicht. Dafür kennt Python special sequences:

special sequence Bedeutung
\d beliebige Ziffer [0-9]
\D beliebiges Zeichen, das keine Ziffer ist
\w beliebiges Zeichen aus [a-zA-Z0-9_]
\W beliebiges Zeichen, das nicht in [a-zA-Z0-9_] enthalten ist
\s beliebiges Leerzeichen
\S beliebiges Nicht-Leerzeichen

procmail

procmail verwendet eine eigene Implementierung von regulären Ausdrücken. Sie unterstützt die Quantoren vom Typ {n,m} nicht.

sed

In sed müssen alle Quantoren außer * escaped werden:

QuantorBedeutung
*beliebig oft (auch keinmal)
\+mindestens einmal, aber auch mehrfach
\?null oder einmal
\{n\}n-mal
\{i,n\}i bis n-mal
regular_expressions.1475619982.txt.gz · Zuletzt geändert: 2016/10/05 00:26 von olli