Ruby Regexp Übersicht

 
^      Zeilenanfang
$      Zeilenende
\A     Anfang eines Strings
\z     Ende eines Strings
\Z     Ende eines Strings mit Ausnahme das der String
       mit \n endet, dann erfasst die Stelle davor
\b     Wortgrenze
\B     !Wortgrenze
[char] Zeichenklasse
[^char] Nicht diese Zeichen
\d     Ziffer
\D     Alles außer Ziffe
\s     Whitespace
\S     Alles außer Whitespace
\w     Wortzeichen
\W     Alles außer Wortzeichen
.      jedes Zeichen außer Newline (bei /m auch newline)
*      0-n mal vorheriger Ausdruck
+      1-n mal vorheriger Ausdruck
{m,n}  m-n mal vorheriger Ausdruck
?      0-1 mal vorheriger Ausdruck
*?,+?  nicht gierige Varianten
{m,n}? nicht gierige Variante
A|B    A oder B
()     Zusammenfassen von Ausdrücken, auch für Submuster
#{}    Variablen-Substitution wie bei String-Literalen
\0..\9 Ersetzungen mit Subexpression
\&     Ersetzung gesamter Ausdruck
\`     Ersetzung mit dem was vor Match auftritt (Pre-Match)
\'     Post-Match
\+     Ersetzung mit letzter Gruppe	

Globale Variablen

 
$&  gefundenes Suchmuster der letzten Aktion. 
    nil, wenn nicht gefunden.

$`  String, der dem Gefundenen vorausgeht.

$'  String, der dem Gefundenen folgt

$+  Übereinstimmung der letzten Klammer(?)

$1, 
$2,...  Teilstrings, die durch Klammern im Suchmuster
        getrennt sind.

$~  Information der letzten Musteraktion. $1 - $9 werden
    hieraus abgeleitet und eine Änderung von bspw. $~[3]
    ändert $3. Die Variable ist lokal zum aktuellen 
    Gültigkeitsbereich

$=  Groß/Kleinschreibung berücksichtigen. Ein Wert ungleich
    nil führt dazu, das sie nicht berücksichtigt wird. 
    Default ist nil.

Optionen

  • /regexp/i - Groß/Kleinschreibung ignorieren
  • /regexp/m - Mehrzeilenmodus. Newline wird als normales Zeichen gewertet.
  • /regexp/o - Ersetze #{...} Ausdrücke nur einmal (kompiliert die Regexp bei erster Benutzung und verändert diese dann nicht mehr. Ist schneller.)
  • /regexp/x - Erweiterter Modus, um Regexp-Ausdrück lesbarer zu machen.

Weblinks