Anfängerhandbuch für reguläre Ausdrücke (Regex)
Ein regulärer Ausdruck ist eine Menge von Zeichen, die ein Muster bilden, das in einer Zeichenkette gesucht werden kann. Regex kann für die Validierung verwendet werden, um Kreditkartennummern zu validieren, für die Suche, dh über komplexe Textübereinstimmungen, und um übereinstimmenden Text durch eine andere Zeichenfolge zu ersetzen . Es hat auch großartige Unterstützung für mehrere Sprachen - lernen Sie es einmal und Sie können es in vielen Programmiersprachen verwenden.
Ich habe nur wenige Leute gesehen, die einen ersten Blick auf Regex werfen und es komplett ignorieren. Ich beschuldige sie nicht; Regex-Syntax ist komplex und wird viele wie diese Befehlszeilensprachen nur noch schlimmer machen. Aber dann ist jede neue Sache unheimlich und scheint auf den ersten Blick unmöglich zu sein. Wenn ich Horatius Worte ausleihe, werde ich das sagen; Fangen Sie an, seien Sie mutig und wagen Sie, weise zu sein .
Über Regex
Regex hatte seine Wurzeln in Neurowissenschaften und Mathematik und wurde erst 1968 von Ken Thompson im QED-Texteditor zur Textsuche programmiert. Jetzt ist es Teil vieler Programmiersprachen wie Perl, Java, Python, Ruby und JavaScript.
Schauen wir uns einige Beispiele an, wie Regex funktioniert.
Ich werde JavaScript in meinen Beispielen verwenden. Um Anfänger zu bestehen, müssen Sie nun alle Zeichen, Klassen, Quantifizierer, Modifikatoren und Methoden lernen , die in Regex verwendet werden. Hier ist ein Link zur Seite "Regulärer Ausdruck" des Mozilla Developer Network, auf der Sie eine Tabelle mit all diesen sehen können. Du kannst auch auf den Cheatsheet am Ende dieses Beitrags mit den meisten verwendeten Zeichen verweisen.
Lassen Sie uns ein einfaches Beispiel mit einer Erklärung sehen. Dies ist eine Regex.

Hier ist ein Beispiel für Übereinstimmungen in einer hervorgehobenen Zeile:
Korb Birne, B12 Vitamin, BaSO4 , N BC Unternehmen
Der obige Regex stoppt die Suche bei Korb und eine positive Antwort zurückgeben. Das liegt daran, dass der globale Modifikator ' g
' angegeben werden muss, wenn die Regex in alle möglichen Übereinstimmungen schauen soll.
Sehen wir uns nun an, wie dieser Ausdruck in JavaScript verwendet wird. Die test
lautet: Wenn eine Übereinstimmung gefunden wird, true
, sonst false
.
var input = "Ihre Testzeichenfolge", regex = / B [a-zA-Z \ d] + /; if (! regex.test (input)) alert ('Keine Übereinstimmung gefunden'); else alert ('Eine Übereinstimmung wird gefunden');
Versuchen wir es mit einer anderen Methode: match
gibt die Übereinstimmungen zurück, die in einem Array gefunden wurden.
var input = "Ihre Testzeichenfolge", regex = / B [a-zA-Z \ d] + / g, / * Ich habe den globalen Modifikator 'g' zur Regex hinzugefügt, um alle Treffer zu erhalten * / ary = input.match (Regex); if (ary === null) alert ('Keine Übereinstimmung gefunden'); else alert ('Übereinstimmungen sind:' + ary.toString ());
Wie wäre es mit String replace
? Lass es uns jetzt mit Regex versuchen.
var input = "Ihre Testzeichenfolge", regex = / B [a-zA-Z \ d] + / g; Warnung (input.replace (regex, "#"));
Unten ist ein Codepen für Sie zu optimieren. Klicken Sie auf die Registerkarte "JavaScript", um den JS-Code anzuzeigen.
Übungen
Für Übungen können Sie "Regex-Übungen" googlen und versuchen, sie zu lösen. Folgendes ist zu erwarten, wenn Sie diese Übungen nach Schwierigkeitsgraden versuchen.
Basic
Für mich reicht es, ein Passwort zu validieren . Validieren Sie daher ein Passwort mit einer Länge von 8 bis 16 Zeichen, alphanumerisch mit der von Ihnen gewählten Sonderzeichenart.
Mittlere
Hier sollten Sie mit mehr realen Daten üben und einige weitere Regex-Punkte wie Lookahead, Lookbehind Assertions und passende Gruppen lernen.
- PIN-Codes, Hexadezimalzahlen, Datumsangaben, E-Mail-ID, Fließkommazahl validieren.
- Ersetzen Sie die folgende Null, Whitespaces, eine Menge übereinstimmender Wörter
- Extrahieren Sie verschiedene Teile einer URL
Fortgeschritten
Sie können die Lösungen der oben genannten Übungen optimieren - der optimale Regex für E-Mail enthält Tausende von Zeichen - nehmen Sie es so weit, wie Sie sich wohl fühlen, und das reicht . Sie können auch versuchen:
- Parsen von HTML oder XML (obwohl in der realen Welt davon abgeraten wird, dies zu tun, weil die Verwendung von regulärem Ausdruck, um nicht-reguläre Sprachen wie HTML zu parsen, niemals idiotensicher ist. Plus-XML-Parsing ist eine schwierige Aufgabe, besser geeignet für Fortgeschrittene)
- Tags ersetzen
- Kommentare entfernen (außer den bedingten Kommentaren des IE)
Werkzeuge
Tools zur Visualisierung von Regex sind eines der coolsten Dinge für mich. Wenn Sie jemals einen langen komplexen Regex finden, kopieren Sie ihn einfach in eines dieser Werkzeuge und Sie werden den Fluss deutlich sehen können. Außerdem gibt es viele Tools, die Sie verwenden können, um mit dem Regex-Code zu experimentieren. Sie zeigen auch Beispiele und Cheatsheets zusammen mit Share-Funktionen.
- Debuggex - Es zeichnet ein Regex-Diagramm gemäß Ihrer Eingabe und Sie können von dort aus schnell an StackOverflow weitergeben.
- RegExr - Sie können Ihre Regex mit diesem testen. Es hat auch eine Referenz, einen Cheatsheet und Beispiele, um Ihnen zu helfen.
- Refiddle - Im Moment können Sie außer JavaScript auch mit Ruby und .NET-Versionen von Regex experimentieren.
Regex Cheatsheet
Zeichen | Definition |
[ABC] | Jedes einzelne Zeichen a, b oder c |
[^ abc] | Jedes andere Zeichen als a, b oder c |
[az] | Zeichen zwischen (einschließlich) a bis z |
[^ az] | Zeichen außer von a bis z |
[AZ] | Zeichen zwischen (einschließlich) A bis Z |
. | Irgendein einzelnes Zeichen |
\ s | Irgendein Leerzeichen-Zeichen |
\ S | Irgendein Nicht-Leerzeichen-Zeichen |
\ d | Jede Ziffer von 0 bis 9 |
\ D | Irgendeine Nicht-Ziffer |
\ w | Jedes Wortzeichen (Buchstabe, Nummer und Unterstrich) |
\ W | Jedes Nicht-Wort-Zeichen |
(...) | Capture alles eingeschlossen |
(a | b) | Passen Sie entweder a oder b an |
ein? | Charakter a ist entweder abwesend oder einmal vorhanden |
ein* | Charakter a ist entweder abwesend oder mehrmals vorhanden |
a + | Zeichen a ist ein- oder mehrmals vorhanden |
a {3} | 3 Vorkommen von Charakter nacheinander |
a {3, } | 3 oder mehr Zeichenfolgen nacheinander |
a {3, 6} | 3 bis 6 Charaktervorkommen nacheinander |
^ | Beginn der Zeichenfolge |
$ | Ende der Zeichenfolge |
\ b | Eine Wortgrenze. Wenn ein Zeichen das letzte oder erste Wortzeichen eines Worts ist oder Wenn ein Zeichen zwischen einem Wort- oder Nichtwortzeichen steht |
\ B | Nicht-Wortgrenze |
Jetzt lesen: Reguläre Ausdrücke: 30 Nützliche Tools und Ressourcen


Was der Dropbox-Hack Ihnen über den Zustand der Websicherheit beibringen kann
In der vergangenen Woche machte Dropbox Schlagzeilen über einen Hack, bei dem die E-Mail-Adressen und Passwörter von 68 Millionen Dropbox-Accounts kompromittiert wurden . Für jeden Dropbox-Benutzer ist dies natürlich ein wichtiger Punkt, besonders wenn Sie etwas in Dropbox speichern, sei es persönlich oder für die Arbeit.Ihre

Die Internetnutzung von Mobilgeräten und Tablets (weltweit) schlägt den Desktop zum ersten Mal
Es ist offiziell. Wir benutzen das Internet jetzt mehr auf unseren Handys und Tablets als auf unserem Desktop . Das unabhängige Webanalyseunternehmen StatCounter hat seine Ergebnisse zur Internetnutzung weltweit veröffentlicht - im Oktober 2016 entfielen 51, 3% der weltweiten Internetnutzung auf Mobil- und Tablet-Geräte, 48, 5% auf Desktop-PCs. H