Ausdrucksbedeutung: (Empfohlen: Java-Video-Tutorial)
1. Zeichen
x Zeichen x . Beispielsweise stellt a das Zeichen a
\ Backslash-Zeichen dar. Schreiben Sie es beim Schreiben als \\. (Hinweis: Da Java beim ersten Parsen \\ in einen regulären Ausdruck\ analysiert und ihn dann beim zweiten Parsen in einen regulären Ausdruck\ analysiert, sind alle Escape-Zeichen, die nicht in 1.1 aufgeführt sind, einschließlich \ in 1.1, alles mit muss sein zweimal geschrieben)
-CASE_INSENSITIVE: Die Zuordnung von Zeichen erfolgt unabhängig von der Groß-/Kleinschreibung. Dieses Flag berücksichtigt standardmäßig nur US-ASCII-Zeichen.
‐UNICODE_CASE: In Kombination mit CASE_INSENSITIVE den Unicode-Buchstabenvergleich verwenden.
‐MULTILINE: ^ und $ entsprechen dem Anfang und Ende einer Zeile und nicht der gesamten Eingabe
‐UNIX_LINES: Beim Abgleich von ^ und $ im Mehrzeilenmodus wird nur „n“ als Zeilenabschlusszeichen betrachtet
‐DOTALL: Wenn dieses Flag verwendet wird, stimmt das Symbol mit allen Zeichen überein, einschließlich Zeilenabschlusszeichen
‐CANON_EQ: Berücksichtigen Sie die kanonische Äquivalenz von Unicode-Zeichen
8. Gieriger Quantor
X?, null oder mehrmals
X+ X, einmal oder mehrmals
X{n}
X{n,m} 🎜>
X*? mindestens n-mal X{n,m}? 🎜>X?+ }+ X, genau n-mal X{n,}+ >Der Unterschied zwischen Greedy, Zurückhaltend und besitzergreifend ist: (Beachten Sie, dass dies nur anwendbar ist, wenn eine Fuzzy-Verarbeitung durchgeführt wird)
Der gierige Quantifizierer wird als „gierig“ angesehen, da er zum ersten Mal den gesamten unscharfen Zustand liest Die passende Zeichenfolge. Wenn der erste Übereinstimmungsversuch (der gesamten Eingabezeichenfolge) fehlschlägt, wird der Vergleicher ein Zeichen nach dem letzten Zeichen in der übereinstimmenden Zeichenfolge zurücksetzen und es erneut versuchen. Dieser Vorgang wird wiederholt, bis eine Übereinstimmung gefunden wird oder keine weiteren Zeichen mehr vorhanden sind kann sich zurückziehen. Je nachdem, welcher Quantor im Ausdruck verwendet wird, wird als letztes versucht, eine Übereinstimmung mit 1 oder 0 Zeichen zu finden.
Zögerliche Quantifizierer verfolgen jedoch den umgekehrten Ansatz: Sie beginnen am Anfang der Zeichenfolge, die abgeglichen wird, und lesen dann nach und nach ein Zeichen nach dem anderen, um nach einer Übereinstimmung zu suchen. Das Letzte, was sie zu finden versuchen, ist die gesamte Eingabezeichenfolge.
Schließlich liest der Possessivquantifizierer immer die gesamte Eingabezeichenfolge und versucht eine (und nur eine) Übereinstimmung. Im Gegensatz zum gierigen Quantifizierer weicht der Possessivbegriff nie zurück.
11. Logischer Operator
XY X gefolgt von Y
X|Y Beispielsweise bedeutet (abc), dass ABC als Ganzes erfasst wird
12. Rückverweis
n Jede passende n-te Erfassungsgruppe
Erfassungsgruppe kann von links nach rechts berechnet werden in offenen Klammern nummeriert. Im Ausdruck ((A)(B(C))) gibt es beispielsweise vier solcher Gruppen:
1 ((A)(B(C)))
2 A
3 (B(C))
4 (C)
Die entsprechende Gruppe kann im Ausdruck durch n referenziert werden, z. B. (ab)341 Es bedeutet ab34ab , (ab)34(cd)12 bedeutet ab34cdabcd.
13. Zitieren
Nichts, aber zitieren Sie die folgenden Zeichen Q Nichts, aber zitieren Sie alle Zeichen bis E. Die Zeichenfolge zwischen QE wird unverändert verwendet (mit Ausnahme der Escape-Zeichen in 1.1). Zum Beispiel kann ab\Q{|}\\Emit ab{|}\
E Nichts übereinstimmen, aber die Referenz endet ab Q
14. Spezielle Konstruktion (nicht -capturing )
(?:X) Beispiel: Der Ausdruck (?i)abc(?-i)def Zu diesem Zeitpunkt aktiviert (?i) den Schalter, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Abc stimmt mit
idmsux überein. Die Beschreibung lautet wie folgt:
‐i CASE_INSENSITIVE Der Zeichensatz :US-ASCII unterscheidet nicht zwischen Groß- und Kleinschreibung. (?i)
‐d UNIX_LINES: UNIX-Zeilenumbrüche aktivieren
‐m MULTILINE: Mehrzeilenmodus (?m)
UNIX-Zeilenumbrüche n
WINDOWS-Konvertierungszeile ist rn(?s)
‐u UNICODE_CASE: Bei Unicode wird die Groß-/Kleinschreibung nicht beachtet. (?u)
‐x KOMMENTARE: Sie können Kommentare im Muster verwenden, das Leerzeichen im Muster ignorieren und „#“ bis zum Ende verwenden (auf # folgen Kommentare). (?x) Beispielsweise kann (?x)abc#asfsdadsa die Zeichenfolge abc
(?idmsux-idmsux:X) X als nicht erfassende Gruppe mit den angegebenen Flags on – off abgleichen. Ähnlich wie oben kann der obige Ausdruck wie folgt umgeschrieben werden: (?i:abc)def oder (?i)abc(?-i:def)
(?=X) X, durch Null gehend Die Breite des positiven Lookaheads. Eine positive Lookahead-Behauptung mit der Breite Null setzt die Übereinstimmung nur dann fort, wenn der Unterausdruck X rechts von dieser Position übereinstimmt. Beispielsweise bedeutet w+(?=d) einen Buchstaben gefolgt von einer Zahl, erfasst jedoch nicht die Zahl (kein Backtracking)
(? (? (?>X) X, als unabhängige, nicht erfassende Gruppe (kein Backtracking)
(?=X) Der Unterschied zwischen (?> ?> >b|bc), denn wenn letzteres mit b übereinstimmt, springt es aus der nicht erfassenden Gruppe und stimmt nicht erneut mit den Zeichen in der Gruppe überein, um den Prozess zu beschleunigen
Für weitere Java-Kenntnisse achten Sie bitte darauf zur SpalteJava Basic Tutorial
.Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des regulären Java-Wissens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!