JavaScript-RegEx-Gruppe

Shraddha Paghdar 20 Juni 2023
JavaScript-RegEx-Gruppe

Reguläre Ausdrücke sind Muster, die mit Kombinationen von Zeichen oder Wörtern aus einer bestimmten Zeichenfolge übereinstimmen. Reguläre Ausdrücke sind auch Objekte in JavaScript.

Diese Muster werden mit test() und exec() von RegExp und mit den Methoden matchAll(), match(), replaceAll(), replace(), search() und split() von String.

Im heutigen Beitrag erfahren Sie mehr über die Regex-Gruppen in JavaScript.

RegEx-Gruppe in JavaScript

Teile eines Musters können in eckige Klammern (...) eingeschlossen werden. Dies wird als Erfassungsgruppe bezeichnet.

Dies hat zwei Auswirkungen:

  1. Sie können einen Teil der Übereinstimmung als separates Element im Ergebnisarray behalten.
  2. Wenn wir hinter die Klammern einen Quantor setzen, gilt er für die Klammern als Ganzes.

Syntax:

const re = /ab+c/;
const re = new RegExp('ab+c');

Die obige Syntax zeigt das normale reguläre Ausdrucksmuster. Es gibt zwei Arten von Lookahead-Assertionen: positiv und negativ.

Die Syntax für einen positiven Lookahead ist (?=...). Die Konstruktion für einen negativen Lookahead ist (?!...). Ein Vorwärts-Negativ behauptet, dass ein Muster keinem bestimmten Muster folgt.

ES2018 ergänzt Lookahead-Assertionen durch die Integration von Lookahead-Assertionen in JavaScript. Mit (?<=...) gekennzeichnet, erlaubt Ihnen eine Backspace-Assertion, ein Muster nur dann abzugleichen, wenn ein anderes Muster davor steht.

Weitere Informationen zu Gruppen und Bereichen finden Sie in der Dokumentation zu Gruppen und Bereiche.

Benennen Sie Capture-Gruppen

Sie können Teile eines regulären Ausdrucks gruppieren, indem Sie die Zeichen in Klammern setzen. Auf diese Weise können Sie die Alternation auf einen Teil des Musters beschränken oder einen Quantisierer auf die gesamte Gruppe anwenden.

Außerdem können Sie den übereinstimmenden Wert in Klammern zur weiteren Verarbeitung extrahieren.

Der folgende Code gibt ein Beispiel dafür, wie man ein Jahr, einen Monat und ein Datum in einer Zeichenfolge findet:

const regEx = /(\d{4})-(\d{2})-(\d{2})/;
const matchedPattern = regEx.exec('2022-04-22');

console.log(matchedPattern[0]);
console.log(matchedPattern[1]);
console.log(matchedPattern[2]);
console.log(matchedPattern[3]);

Im obigen Beispiel haben wir die Regex für ein Jahr, einen Monat und einen Tag definiert. Wenn wir schließlich die Regex für die angegebene Zeichenfolge ausführen, erfasst sie das Muster und gruppiert es mit der übereinstimmenden Gruppe.

Wir müssen uns daran erinnern, dass das Muster für ein Jahr, einen Monat und einen Tag gilt. Nachdem die gesamte Regex ausgeführt wurde, wird etwa das folgende Ergebnis ausgegeben:

Ausgang:

"2022-04-22"
"2022"
"04"
"22"

Die Lösung für das obige Problem ist das Erfassen von Gruppen. Die fortschrittlichste Version erfasst Gruppen mit einer ausdrucksstärkeren Syntax in Form von (?<name>...):

const regEx = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const matchedPattern = regEx.exec('2022-03-22');

console.log(matchedPattern.groups);
console.log(matchedPattern.groups.year);
console.log(matchedPattern.groups.month);
console.log(matchedPattern.groups.day);

Im obigen Beispiel haben wir die Regex für ein Jahr definiert und ihr Jahr benannt. In ähnlicher Weise haben wir die Regex für Monat und Tag definiert.

Wenn wir schließlich die Regex für die angegebene Zeichenfolge ausführen, erfasst sie das Muster und gruppiert es mit der übereinstimmenden Gruppe. Nachdem die gesamte Regex ausgeführt wurde, wird etwa das folgende Ergebnis ausgegeben:

Ausgang:

{
    day: "22",
    month: "03",
    year: "2022"
}
"2022"
"03"
"22"

Sie können auch hier auf den vollständigen Code zugreifen.

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

Verwandter Artikel - JavaScript RegEx