Gieriger Quantifizierer:
Lassen Sie uns zuerst sehen, ob die gesamte Zeichenfolge übereinstimmt. Wenn keine Übereinstimmung gefunden wird, entfernt es das letzte Zeichen in der letzten Zeichenfolge und versucht erneut. Wenn keine Übereinstimmung gefunden wird, entfernen Sie die letzte Zeichenfolge erneut und der Vorgang wird wiederholt, bis eine Übereinstimmung gefunden wird oder die Zeichenfolge keine Zeichen übrig hat. Einfache Quantifizierer sind alle gierige Quantifizierer.
Fauler Quantifizierer:
Lassen Sie uns zunächst sehen, ob der erste Buchstabe in der Zeichenfolge übereinstimmt. Wenn keine Übereinstimmung gefunden wird, fügt der faule Quantifizierer weiterhin Zeichen aus der Zeichenfolge hinzu, bis eine Übereinstimmung gefunden wurde oder die gesamte Zeichenfolge überprüft wurde und keine Übereinstimmung vorliegt. Faule Quantifizierer funktionieren genau in die entgegengesetzte Art und Weise.
Dominante Quantifizierer:
Versuchen Sie, nur die gesamte Zeichenfolge zu erreichen. Wenn die gesamte Zeichenfolge kein Match erzeugt, wird kein weiterer Versuch unternommen.
Gierige Quantifizierer Lazy Quantifizierer dominieren Quantifizierer Beschreibung
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------
?
* *? *+ kann jederzeit erscheinen oder nicht
+ +? ++ erscheint einmal oder mehrmals, aber mindestens einmal
{n} {n}?
{n, m} {n, m}?
{n,} {n,}?
1. Gierige Messwörter
Die Codekopie lautet wie folgt:
var regexp = /.*bbb/g;
var a = str.match (regexp);
Alarm (A.Length); // Ausgabe: 1
Alarm (a [0]);
Der Arbeitsprozess von gierigen Quantifizierern kann auf diese Weise ausgedrückt werden:
a) Abbbaabbbaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
b) Abbaabbbaabbb123
C) AbbbabbaabbaAbbb12
d) AbbbabbaabbaAbbb1
e) Abbbabbaabbaaabbb // true
Sie können sehen, dass der gierige Quantifizierer nach dem Erhalten eines Spiels nicht mehr arbeiten wird, obwohl wir 'g' (globales Match) hinzugefügt haben (global).
2. Faule Messwörter
Die Codekopie lautet wie folgt:
var regexp = /.*?bb/g;
var a = str.match (regexp);
Alarm (A.Length);
ALERT (a [0]);
Alarm (a [1]);
Alarm (a [2]);
Der Arbeitsprozess von faulen Quantifizierern kann auf diese Weise ausgedrückt werden:
a) a
b) ab
c) ABB
D) ABBB // das Ergebnis speichern und vom nächsten Ort erneut starten
e) a
f) aa
g) aab
h) aabb
j) AABBB // Speichern Sie das Ergebnis und starten Sie vom nächsten Ort von vorhanden
e) a
e) aa
e) AAA
e) aaab
e) aaabb
e) AAABBB // Sparen Sie das Ergebnis und beginnen Sie von der nächsten Position von vorhanden.
Die Codekopie lautet wie folgt:
String string = "abbbaabbbaaAbbb1234";
Muster p = muster.comPile (".*+Bbb");
Matcher M = P.Matcher (String);
System.out.println (m.find ());
Weil dominante Quantifizierer eine einheitliche Matching-Methode anwenden, wie beispielsweise:
a) AbbbabbaabbaaAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1234 // Falsch
Das obige ist der gesamte Inhalt dieses Artikels.
Bitte nehmen Sie sich etwas Zeit, um den Artikel mit Ihren Freunden zu teilen oder einen Kommentar zu hinterlassen. Wir werden uns aufrichtig für Ihre Unterstützung bedanken!