Um mit regulären Ausdrücken erfolgreich arbeiten zu können, müssen Sie wissen, was jedes Sonderzeichen, jede Flagge und jede Methode bewirkt. Dies ist ein Spickzettel für reguläre Ausdrücke, auf den Sie sich beziehen können, wenn Sie versuchen, sich zu merken, wie eine Methode, ein Sonderzeichen oder ein Flag funktioniert.
Es gibt zwei Möglichkeiten, einen regulären Ausdruck in JavaScript zu definieren.
var rgx = / ^ (\ d +) /
- Sie können ein Literal für reguläre Ausdrücke verwenden und das Muster zwischen Schrägstrichen einschließen. Dies wird zur Kompilierzeit ausgewertet und bietet eine bessere Leistung, wenn der reguläre Ausdruck konstant bleibt.var rgx = new RegExp ('^ (\ d +)')
- Die Konstruktorfunktion ist nützlich, wenn der reguläre Ausdruck programmgesteuert geändert werden kann. Diese werden zur Laufzeit kompiliert.Die folgenden Sequenzen können verwendet werden, um einen bestimmten Zeichensatz zu finden.
\ w
- Stimmt mit allen Wörtern überein. Wortzeichen sind alphanumerisch (a-z, A-Z-Zeichen und Unterstrich).\ W
- Stimmt mit Nicht-Wort-Zeichen überein. Alles außer alphanumerischen Zeichen und Unterstrich.\ d
- Stimmt mit Ziffern überein. Jede Ziffer von 0 bis 9.\ D
- Stimmt mit nicht-stelligen Zeichen überein. Alles außer 0 bis 9.\ s
- Stimmt mit Leerzeichen überein. Dies schließt Leerzeichen, Tabulatoren und Zeilenumbrüche ein.\ S
- Stimmt mit allen anderen Zeichen außer Whitespace überein..
- Stimmt mit jedem Zeichen außer Zeilenumbrüchen überein.[A-Z]
- Stimmt mit Zeichen in einem Bereich überein. Zum Beispiel, [A-E]
wird mit A, B, C, D und E übereinstimmen.[ABC]
- Stimmt mit einem Zeichen in der angegebenen Menge überein. Zum Beispiel, [AMT]
wird nur mit A, M und T übereinstimmen.[^ ABC]
- Stimmt mit allen Zeichen überein nicht im gegebenen Satz vorhanden. Zum Beispiel, [^ A-E]
stimmt mit allen anderen Zeichen außer A, B, C, D und E überein.Alle obigen Ausdrücke stimmen jeweils mit einem einzelnen Zeichen überein. Sie können Quantifizierer hinzufügen, um anzugeben, wie viele Zeichen gleichzeitig in den Match aufgenommen werden sollen.
+
- Stimmt mit einem oder mehreren Vorkommen des vorhergehenden Tokens überein. Zum Beispiel, \ w+
wird zurückkehren ABD12D als Einzelmatch statt sechs verschiedenen Matches.*
- Stimmt mit keinem oder mehreren Vorkommen des vorhergehenden Tokens überein. Zum Beispiel, b \ w *
stimmt mit den fetten Teilen in überein b, Fledermaus, bajhdsfbfjhbe. Im Grunde passt es nach 'b' auf null oder mehr Wortzeichen..m, n
- Stimmt mindestens mit m und höchstens n Vorkommen des vorherigen Tokens überein. m,
wird mindestens m Vorkommen entsprechen, und es gibt keine Obergrenze für die Übereinstimmung. k
wird genau k Vorkommen des vorhergehenden Tokens entsprechen.?
- Entspricht keinem oder einem Vorkommen des vorhergehenden Zeichens. Dies kann zum Beispiel nützlich sein, wenn zwei Variationen der Rechtschreibung für dieselbe Arbeit abgeglichen werden. Zum Beispiel, /Verhalten/
wird mit beiden übereinstimmen Verhalten und Verhalten.|
- Stimmt mit dem Ausdruck vor oder nach dem Pipe-Zeichen überein. Zum Beispiel, / se (a | e) /
passt sowohl zu sehen als auch zum Meer.(ABC)
- Dadurch werden mehrere Token zusammen gruppiert und der von ihnen übereinstimmende Teilstring zur späteren Verwendung gespeichert. Dies wird als Fanggruppe bezeichnet.(?:ABC)
- Dies wird auch mehrere Token zusammenfassen, sich aber nicht an das Match erinnern. Es handelt sich um eine Gruppe, die nichts festhält.\ d + (? = ABC)
- Dies entspricht den Token vor dem (? = ABC)
Teil nur, wenn es von folgt ABC
. Der Teil ABC
wird nicht in das Spiel aufgenommen. Das \ d
Teil ist nur ein Beispiel. Es kann sich auch um einen anderen regulären Ausdruck handeln.\ d + (?! ABC)
- Dies entspricht den Token vor dem (?!ABC)
Teil nur, wenn es ist nicht gefolgt von ABC
. Der Teil ABC
wird nicht in das Spiel aufgenommen. Das \ d
Teil ist nur ein Beispiel. Es kann sich auch um einen anderen regulären Ausdruck handeln.Es gibt auch einige andere reguläre Ausdruckszeichen, die in den vorherigen Abschnitten nicht behandelt wurden:
^
- Suchen Sie nach dem regulären Ausdruck am Anfang der Zeichenfolge oder am Anfang einer Zeile, wenn das Mehrzeilenflag aktiviert ist.$
- Suchen Sie nach dem regulären Ausdruck am Ende der Zeichenfolge oder am Ende einer Zeile, wenn das Mehrzeilenflag aktiviert ist.\ b
- Passen Sie das vorherige Token nur an, wenn eine Wortgrenze vorhanden ist.\ B
- Passen Sie das vorherige Token nur an, wenn keine Wortgrenze vorhanden ist.Flags können verwendet werden, um zu steuern, wie ein regulärer Ausdruck interpretiert werden soll. Sie können Flags entweder alleine oder zusammen in beliebiger Reihenfolge verwenden. Dies sind die fünf Flaggen, die in JavaScript verfügbar sind.
G
- Durchsuchen Sie die Zeichenfolge nach allen Übereinstimmungen des angegebenen Ausdrucks, anstatt nur den ersten zurückzugeben.ich
- Machen Sie die Suche unabhängig von der Groß- und Kleinschreibung, sodass Wörter wie Apple, aPPLe und Apple alle auf einmal abgeglichen werden können.m
- Diese Flagge stellt sicher, dass die ^
und $
Token suchen am Anfang oder Ende jeder Zeile anstelle der gesamten Zeichenfolge nach einer Übereinstimmung.u
- Mit diesem Flag können Sie Unicode-Codepunkte in Ihrem regulären Ausdruck verwenden.y
- Dadurch wird JavaScript angewiesen, nur an der aktuellen Position in der Zielzeichenfolge nach einer Übereinstimmung zu suchen.Sie können Flags für reguläre Ausdrücke in JavaScript angeben, indem Sie sie entweder am Ende eines regulären Ausdruckslitals hinzufügen oder an das übergeben RegExp
Konstrukteur. Zum Beispiel, / cat / i
stimmt mit allen Vorkommen von Katze unabhängig vom Fall und RegExp ("Katze", "Ich")
tut das gleiche.
Die regulären Ausdrücke, die Sie mit den bisher besprochenen Flags und Zeichenfolgen erstellen, sollen mit verschiedenen Methoden zum Suchen, Ersetzen oder Teilen eines Strings verwendet werden. Hier einige Methoden, die sich auf reguläre Ausdrücke beziehen.
Prüfung()
- Überprüfen Sie, ob die Hauptzeichenfolge eine Teilzeichenfolge enthält, die mit dem durch den angegebenen regulären Ausdruck angegebenen Muster übereinstimmt. Es kehrt zurück wahr
auf ein erfolgreiches Spiel und falsch
Andernfalls.var textA = 'Ich mag APPles sehr gerne'; var textB = 'Ich mag APPles'; var regexOne = / apples $ / i // Ausgabe: false console.log (regexOne.test (textA)); // Ausgabe: true console.log (regexOne.test (textB));
Im obigen Beispiel soll der reguläre Ausdruck nach dem Wort suchen Äpfel nur am Ende der Zeichenfolge. Deshalb haben wir bekommen falsch
im ersten Fall.
Suche()
- Überprüfen Sie, ob die Hauptzeichenfolge eine Teilzeichenfolge enthält, die mit dem durch den angegebenen regulären Ausdruck angegebenen Muster übereinstimmt. Bei Erfolg wird der Index des Matches zurückgegeben -1 Andernfalls.var textA = 'Ich mag APPles sehr gerne'; var regexOne = / Äpfel /; var regexTwo = / Äpfel / i; // Ausgabe: -1 console.log (textA.search (regexOne)); // Ausgabe: 7 console.log (textA.search (regexTwo));
In diesem Fall wurde der erste reguläre Ausdruck zurückgegeben -1 weil es keine exakte Groß- und Kleinschreibung gab.
Spiel()
- Suche, ob die Hauptzeichenfolge eine Teilzeichenfolge enthält, die dem durch den angegebenen regulären Ausdruck angegebenen Muster entspricht. Wenn die G
Wenn das Flag aktiviert ist, werden mehrere Übereinstimmungen als Array zurückgegeben.var textA = 'Alles was ich hier sehe, sind Äpfel, Äpfel und Äpfel'; var regexOne = / Äpfel / gi; // Ausgabe: ["Äpfel", "APPles", "apPleS"] console.log (textA.match (regexOne));
exec ()
- Suche, ob die Hauptzeichenfolge eine Teilzeichenfolge enthält, die dem durch den angegebenen regulären Ausdruck angegebenen Muster entspricht. Das zurückgegebene Array enthält Informationen zu den Übereinstimmungs- und Erfassungsgruppen.var textA = 'Magst du Äpfel?'; var regexOne = / Äpfel /; // Ausgabe: apples console.log (regexOne.exec (textA) [0]); // Ausgabe: Magst du Äpfel? console.log (regexOne.exec (textA) .input);
ersetzen()
- Suchen Sie nach einem Teilstring, der dem angegebenen Muster entspricht, und ersetzen Sie ihn durch den bereitgestellten Ersetzungsstring.var textA = 'Magst du aPPles?'; var regexOne = / apples / i // Ausgabe: Magst du Mangos? console.log (textA.replace (regexOne, 'mangos')));
Teilt()
- Mit dieser Methode können Sie die Hauptzeichenfolge basierend auf dem als regulären Ausdruck angegebenen Trennzeichen in Teilzeichenfolgen aufteilen.var textA = 'Diese 593-Zeichenfolge wird an Stellen verwendet, an denen d1gits sind.'; var regexOne = / \ d + / g // Ausgabe: ["Dieser", "String wird brok", "en an Stellen, an denen d", "gits sind". ] console.log (textA.split (regexOne))
In vorherigen Tutorials habe ich die Grundlagen regulärer Ausdrücke sowie einige kompliziertere Ausdrücke behandelt, die sich gelegentlich als nützlich erweisen können. In diesen beiden Lernprogrammen wurde erläutert, wie verschiedene Zeichen oder Zeichenfolgen in regulären Ausdrücken funktionieren.
Wenn Sie durch regelmäßige Ausdrücke immer noch verwirrt werden, würde ich Ihnen raten, weiter zu üben und zu sehen, wie andere Leute reguläre Ausdrücke finden, um ein bestimmtes Muster zu erstellen.