Quantifizierer

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Mit Quantifizierern können Sie Wiederholungen von Zeichen oder Sequenzen in Mustern wie folgt angeben:

Quantifizierer-Metazeichen

Beschreibung

* (Sternchen)

Entspricht dem vorherigen Element, das nicht, einmal oder mehrmals wiederholt wird.

+ (Pluszeichen)

Entspricht dem vorherigen Element, das mindestens einmal wiederholt wird.

? (Fragezeichen)

Entspricht dem vorherigen Element, das nicht oder einmal wiederholt wird.

{ n }

{ n ,}

und

{ n , n }

Gibt einen numerischen Quantifizierer oder Quantifiziererbereich für das vorherige Element an:

/A{27}/ entspricht dem Zeichen A, das 27 Mal wiederholt wird.

/A{3,}/ entspricht dem Zeichen A, das mindestens 3 Mal wiederholt wird.

/A{3,5}/ entspricht dem Zeichen A, das zwischen 3 und 5 Mal wiederholt wird.

Sie können einen Quantifizierer auf ein einzelnes Zeichen, auf eine Zeichenklasse oder auf eine Gruppe anwenden:

  • /a+/ entspricht dem Zeichen a , das mindestens ein Mal wiederholt wird.

  • /\d+/ entspricht mindestens einer Ziffer.

  • /[abc]+/ entspricht einer Wiederholung mindestens eines Zeichens, wobei es sich jeweils um das Zeichen a , b oder c handelt.

  • /(sehr, )*/ entspricht dem Wort sehr , gefolgt von einem Komma und einem Leerzeichen, das nicht, einmal oder mehrmals wiederholt wird.

Sie können Quantifizierer innerhalb von in Klammern eingeschlossenen Gruppen verwenden, auf die Quantifizierer angewendet werden. Der folgende Quantifizierer entspricht beispielsweise Strings wie Wort und Wort-Wort-Wort :

/\w+(-\w+)*/

In der Standardeinstellung wird mit regulären Ausdrücken eine sogenannte gierige Suche durchgeführt. Für alle Teilmuster in einem regulären Ausdruck (z. B. .* ) wird im String nach möglichst vielen übereinstimmenden Zeichen gesucht, bevor der nächste Teil des regulären Ausdrucks verarbeitet wird. Betrachten Sie beispielsweise den folgenden regulären Ausdruck und String:

var pattern:RegExp = /<p>.*<\/p>/; 
str:String = "<p>Paragraph 1</p> <p>Paragraph 2</p>";

Der reguläre Ausdruck stimmt mit dem gesamten String überein:

<p>Paragraph 1</p> <p>Paragraph 2</p>

Wenn Sie jedoch beispielsweise Übereinstimmungen in nur einer <p>...</p> -Gruppe suchen, erreichen Sie dies wie folgt:

<p>Paragraph 1</p>

Fügen Sie ein Fragezeichen ( ? ) nach einem Quantifizierer ein, um ihn in einen sogenannten genügsamen Quantifizierer zu ändern. Der folgende reguläre Ausdruck mit dem genügsamen Quantifizierer *? entspricht beispielsweise <p> , gefolgt von der Mindestanzahl der möglichen Zeichen (daher „genügsam“), gefolgt von </p> :

/<p>.*?<\/p>/

Berücksichtigen Sie dabei die folgenden Punkte im Hinblick auf Quantifizierer:

  • Mit den Quantifizierern {0} und {0,0} wird ein Element nicht aus einer Übereinstimmung ausgeschlossen.

  • Kombinieren Sie nicht mehrere Quantifizierer miteinander, z. B. /abc+*/ .

  • Der Punkt (.) umfasst mehrere Zeilen nur, wenn das s -Flag ( dotall ) gesetzt ist, auch wenn nach dem Punkt ein * -Quantifizierer eingefügt wird. Betrachten Sie den folgenden Beispielcode:

    var str:String = "<p>Test\n"; 
    str += "Multiline</p>"; 
    var re:RegExp = /<p>.*<\/p>/; 
    trace(str.match(re)); // null; 
     
    re = /<p>.*<\/p>/s; 
    trace(str.match(re)); 
        // output: <p>Test 
        //                    Multiline</p>

Weitere Informationen finden Sie unter Flags und Eigenschaften .