Zum Inhalt springen

JavaScript Regex-Sets und -Ranges

Reguläre Ausdrücke (regex) in JavaScript sind ein leistungsstarkes Werkzeug zur Textverarbeitung und -manipulation. Das Verständnis von Sets und Ranges innerhalb von Regex kann Ihre Fähigkeit, Strings effizient zu durchsuchen und zu verwalten, erheblich verbessern. Dieser Leitfaden untersucht das Konzept von Sets und Ranges in JavaScript-Regex und bietet praktische Beispiele sowie Tipps für die optimale Nutzung.

Einführung in Sets in Regex

Ein „Set“ in einem regulären Ausdruck ermöglicht es Ihnen, eine Menge von Zeichen anzugeben, die an einer bestimmten Position im Suchstring übereinstimmen können. Innerhalb von eckigen Klammern [] definiert, sind Sets grundlegend für die Erstellung flexibler und leistungsstarker regulärer Ausdrücke.

Einfache Sets

Beispielweise wird das Set [abc] jedes einzelne Zeichen von 'a', 'b' oder 'c' matchen. So können Sie dies in einem Code-Snippet verwenden:


Output appears here after Run.

Negierte Sets

Um ein negiertes Set zu erstellen, das jedes nicht angegebene Zeichen matcht, verwenden Sie das Caret-Symbol ^ innerhalb der eckigen Klammern. Beispielweise matcht [^abc] jedes Zeichen außer 'a', 'b' oder 'c'.


Output appears here after Run.

Verständnis von Ranges

Ranges ermöglichen es Ihnen, eine Menge von Zeichen in einer Sequenz anzugeben, was Ihren Regex übersichtlicher und oft effizienter macht.

Numerische Ranges

So steht beispielsweise [0-9] für jede Ziffer von '0' bis '9'. Dies ist besonders nützlich zum Matchen von String-Teilen, die Zahlen enthalten:


Output appears here after Run.

Alphabetische Ranges

Ebenso matcht [a-z] jeden Kleinbuchstaben von 'a' bis 'z'. Sie können Ranges kombinieren, um mehrere Zeichengruppen einzuschließen:


Output appears here after Run.

Erweiterte Verwendung von Sets und Ranges

Die Kombination von Sets mit vordefinierten Zeichengruppen in JavaScript-Regulären Ausdrücken ermöglicht noch differenziertere und leistungsstärkere Textmatch-Funktionen. Auch wenn einige Kombinationen redundant erscheinen mögen, kann das Verständnis, wie man diese effektiv in Regex-Mustern nutzt, Ihre Textverarbeitung optimieren.

Beispiel: Kombinieren von Wortzeichen und Sonderzeichen

Betrachten wir ein praktisches Beispiel, bei dem die Kombination von Zeichengruppen mit bestimmten Zeichen sehr nützlich sein kann.


Output appears here after Run.

Hier umfasst \w alle Buchstaben, Ziffern und das Unterstrich-Zeichen. Durch das Hinzufügen von ! zum Set matcht der Regex auch explizit das Ausrufezeichen, das normalerweise nicht von \w abgedeckt wird. Dieses Muster ist nützlich, wenn Sie bestimmte Satzzeichen in Ihren Matches einschließen möchten, ohne das Match auf alle Sonderzeichen auszudehnen.

Unicode- und Mehrsprachige Unterstützung

Um Buchstaben über verschiedene Sprachen hinweg zu matchen, können Sie die in ECMAScript 2018 und später verfügbaren Unicode-Eigenschafts-Escapes verwenden. Beispielweise matcht \p{L} jede Art von Buchstaben aus jeder Sprache:


Output appears here after Run.

Ausschließen von Ranges in Regulären Ausdrücken

In JavaScript-Regulären Ausdrücken ermöglichen ausschließende Ranges, eine Menge von Zeichen zu definieren, die nicht gematcht werden sollen. Dies geschieht durch das Caret-Symbol ^ unmittelbar nach der öffnenden eckigen Klammer in einem Zeichensatz. Beispielweise matcht [^abc] jedes Zeichen außer 'a', 'b' oder 'c'.

Beispiel für das Ausschließen von Ranges


Output appears here after Run.

Dieser Regex findet alle Nicht-Vokal-Zeichen, einschließlich Satzzeichen und Leerzeichen. Dies ist eine leistungsstarke Methode, um unerwünschte Zeichen aus einem String zu filtern.

Escapen von Sonderzeichen in Sets

Bestimmte Zeichen haben in Regulären Ausdrücken eine spezielle Bedeutung (z. B. die eckigen Klammern [ ], der Backslash \, das Caret ^ und der Bindestrich -). Um diese Zeichen als Literale innerhalb eines Sets zu verwenden, müssen sie mit einem Backslash \ escaped werden.

Beispiel für das Escapen von Sonderzeichen


Output appears here after Run.

In diesem Beispiel werden die eckigen Klammern mit Backslashes escaped, damit sie als Literale und nicht zur Definition eines Zeichensatzes behandelt werden.

Fazit

Das Beherrschen von Sets und Ranges in JavaScript-Regex verbessert nicht nur Ihre Fähigkeiten zur String-Manipulation, sondern führt auch zu sauberem, effizienterem Code. Sie sind besonders leistungsstark beim Parsen von Text, Validieren von Eingaben und Verarbeiten von Daten in der Webentwicklung.

Practice

Welche Merkmale und Funktionen haben JavaScript-Sets und -Ranges?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.