Die Rolle und Anwendungsszenarien von Javascript-Klammern, Klammern und Klammern für reguläre Ausdrücke

In regulären JavaScript-Ausdrücken haben geschweifte Klammern {}, Klammern [] und Klammern () unterschiedliche Funktionen und Anwendungsszenarien.

große Klammern{}

In regulären Ausdrücken geben geschweifte Klammern {} die Anzahl der Wiederholungen an. Hier sind einige häufige Anwendungsszenarien:

{n}: Die Anzahl der Vorkommen einer genauen Übereinstimmung, z. B. \d{3} stimmt mit drei aufeinanderfolgenden Zahlen überein.
{n,}: Übereinstimmung mindestens n-mal, z. B. \d{4,} stimmt mit mindestens vier aufeinanderfolgenden Zahlen überein.
{n,m}: n- bis m-fache Übereinstimmung, z. B. \w{2,4} entspricht zwei bis vier Vorkommen von Buchstaben, Zahlen oder Unterstrichen.

eckige Klammern []

In regulären Ausdrücken stellen eckige Klammern [] eine Menge dar, die die zu vergleichenden Zeichen enthält. Hier sind einige häufige Anwendungsszenarien:

[abc]: entspricht den Zeichen a, b oder c.
[az]: entspricht jedem Kleinbuchstaben.
[AZ]: entspricht jedem Großbuchstaben.
[0-9]: entspricht jedem numerischen Zeichen.
[^abc]: entspricht jedem Zeichen außer a, b, c.
[az&&[^aeiou]]: entspricht jedem Kleinbuchstaben, schließt jedoch Vokale aus.

Klammern()

In regulären Ausdrücken geben Klammern () eine Gruppierung an. Hier sind einige häufige Anwendungsszenarien:

(abc)Entspricht der Teilzeichenfolge abc.
(a|b|c)Passen Sie a, b oder c an.
(?:abc)Nicht erfassende Gruppierung, stimmt mit der Teilzeichenfolge abc überein, erfasst jedoch nicht.
(\d{3}-\d{4})Erfassen Sie die Gruppe und stimmen Sie mit einer beliebigen Kombination aus drei aufeinanderfolgenden Ziffern plus einem Bindestrich und vier aufeinanderfolgenden Ziffern überein

In praktischen Anwendungen werden reguläre Ausdrücke häufig verwendet, um zu überprüfen, ob das Format der Eingabe den Anforderungen entspricht, einen Teil des Inhalts im Text zu ersetzen und nach dem angegebenen Format zu suchen.

Klammern im Detail

In JavaScript sind Klammern () die Gruppierungssyntax in regulären Ausdrücken. Seine Aufgabe besteht darin, den Inhalt als Ganzes zu verarbeiten.
Hier sind einige Verwendungsszenarien für Klammern in regulären Ausdrücken:

Capture-Paket

Verwenden Sie Klammern, um eine einfangende Gruppe zu erstellen, ihren Inhalt als Unterausdruck zu markieren und ihre Übereinstimmung in einer automatisch benannten nummerierten Variablen zu speichern (normalerweise $n oder \n, wobei n die Nummer der einfangenden Gruppe ist). Auf seinen Wert kann dann mithilfe von Capture-Gruppen in regulären Ausdrücken verwiesen werden.
Sie können beispielsweise Klammern verwenden, um eine Datumszeichenfolge in Jahres-, Monats- und Tagesteile zu unterteilen:

const regex = /(\d{4})-(\d{2})-(\d{2})/;
const str = '2022-05-01';
const match = regex.exec(str);
console.log(match[1]); // '2022'
console.log(match[2]); // '05'
console.log(match[3]); // '01'

In diesem Beispiel stimmen die Erfassungsgruppen (\d{4}), (\d{2}) und (\d{2}) mit Jahr, Monat und Tag überein und speichern ihre Werte in $1, $2 und $3 In.

Nicht einfangendes Paket

Verwenden Sie die Syntax ?:, um eine nicht erfassende Gruppe zu erstellen, die den übereinstimmenden Inhalt nicht enthält und nicht die Nummer der erfassenden Gruppe belegt. Dies ist nützlich, wenn es um sich wiederholende Unterausdrücke, alternative Verzweigungen oder Unterausdrucksoptionen geht.
Beispielsweise kann eine nicht erfassende Gruppierung verwendet werden, um regulären Ausdrücken die Verarbeitung mehrerer Leerzeichen oder Tabulatoren zu ermöglichen:

const regex = /(?: |\t)+/;
const str = 'foo bar\tbaz   qux';
const words = str.split(regex);
console.log(words); // ['foo', 'bar', 'baz', 'qux']

In diesem Beispiel stimmt der reguläre Ausdruck (?: |\t)+ mit einem oder mehreren Leerzeichen oder Tabulatoren überein und die Zeichenfolge wird durch die Split-Methode in Wörter aufgeteilt.

Rückbezugsgruppe

Verwenden Sie die \n-Syntax, um den Wert einer vorherigen Erfassungsgruppenübereinstimmung im regulären Ausdruck als Teil des folgenden Ausdrucks abzugleichen. Dies ist nützlich, wenn es um Dinge wie wiederholte Wörter oder Token geht.
Beispielsweise kann die Gruppierung von Rückverweisen verwendet werden, um wiederholte Wörter abzugleichen:

const regex = /\b(\w+)\b\s+\1/;
const str = 'foo foo bar bar baz';
const match = regex.exec(str);
console.log(match[0]); // 'foo foo'
console.log(match[1]); // 'foo'

In diesem Beispiel entspricht die Erfassungsgruppierung (\w+) einem oder mehreren Wortzeichen; \s+ entspricht einem oder mehreren Leerzeichen; \1 entspricht einem zuvor erfassten Wort, wodurch sichergestellt wird, dass bereits erfasste Wörter wiederholt werden.

おすすめ

転載: blog.csdn.net/m0_51312071/article/details/130454409