Latest web development tutorials

Reguläre Ausdrücke - Beispiele

Einfache Ausdrücke

Die einfachste Form eines regulären Ausdrucks, die ihren eigenen gewöhnlichen einzelnes Zeichen im Suchbegriff übereinstimmt. Zum Beispiel A. Ein-Zeichen-Modus, wie A, sei es in der Such-String, wo es passt immer den Brief Im Folgenden ist ein Beispiel für einen regulären Ausdruck von einigen der einzelnen Charaktere:

/a/
/7/
/M/

Es können miteinander kombiniert werden, um ein einzelnes Zeichen vieler großer Ausdrücke zu bilden. Zum Beispiel ist die folgende reguläre Ausdruck eine Kombination aus Einzelzeichen Ausdrücke: a, 7 und M.

/a7M/

Beachten Sie, dass keine Verkettungsoperator. Geben Sie einfach ein anderes Zeichen hinter einem Zeichen.

Zeichenvergleich

Punkt (.) Spiele die Zeichenfolge in einer Vielzahl von Print- und nicht druckbare Zeichen, nur ein Zeichen Ausnahme. Die Ausnahme ist die Newline-Zeichen (\ n). Die folgenden regulären Ausdruck aac, abc, acc, adc, usw., sowie A1C, a2c, ac und ein # c:

/a.c/

mit dem Dateinamen und den Punkt (.) ist ein integraler Bestandteil der Eingangskette, vor dem regulären Ausdruck in der Zeit und dem Backslash (\) Zeichen in eine Zeichenfolge. Zur Veranschaulichung der folgenden regulären Ausdruck filename.ext:

/filename\.ext/

Diese Ausdrücke können Sie nur "any" Übereinstimmung mit einzelnen Zeichen. Die Liste müssen bestimmte Zeichensatz entsprechen. Zum Beispiel können Sie die Kapitelüberschriften mit Ziffern (Kapitel 1, Kapitel 2, usw.) zu finden.

Ausdrücke in Klammern

Um eine Liste der passenden Zeichengruppe, in eckigen Klammern ([und]) Anordnen eines oder mehrerer einzelner Zeichen innerhalb erstellen. Wenn die Zeichen in Klammern, die so genannte Liste "Klammerausdruck." Wie in jedem anderen Ort stellen gewöhnliche Zeichen selbst in Klammern, das heißt, es passt eine seiner eigenen im Eingabetext. Ihre Bedeutung verlieren, wenn Sie in den Klammerausdruck die meisten Sonderzeichen erscheinen. Aber es gibt einige Ausnahmen, wie zum Beispiel:

  • Wenn] Zeichen nicht das erste ist, es ist das Ende einer Liste. Um die Liste] Charakter entsprechen, setzen Sie es in erster Linie, gefolgt am Anfang [der Rückseite.
  • \ Charakter weiterhin ein Escape-Zeichen zu sein. Um das Zeichen \ entsprechen, verwenden Sie \\.

Eingeschlossen in einem Ausdruck in eckigen Klammern Spiel nur ein Zeichen in einem regulären Ausdruck in einem einzelnen Zeichen an dieser Position. Die folgenden regulären Ausdruck entspricht Kapitel 1, Kapitel 2, Kapitel 3, Kapitel 4 und Kapitel 5:

/Chapter [12345]/

Bitte beachten Sie, dass die Lage des Raumes nach dem Wort Kapitel und in Bezug auf den Charakter innerhalb der Klammern befestigt sind. nach dem Wort Kapitel und den Raum hinter dem Zeichensatz nur Bracket Ausdruck gibt sofort eine einzelne Zeichenposition entsprechen. Dies ist die neunte Zeichenposition.

Um einen Bereich statt der Charaktere selbst verwenden, um passende Zeichensatz darzustellen, verwenden Sie einen Bindestrich (-) im Bereich des Startzeichen und Endezeichen getrennt. Zeichenwert die relative Reihenfolge der einzelnen Zeichen innerhalb des Bereichs zu bestimmen. Der folgende reguläre Ausdruck eine Reihe Ausdruck enthält, ist der Ausdruck auf den Bereich äquivalent oben in Klammern Liste angezeigt.

/Chapter [1-5]/

Wenn auf diese Weise spezifizierten Bereich verwendet wird, sowohl die Anfangs- und Endwerte werden in den Schutzbereich eingeschlossen. Hinweis: Es ist auch wichtig, nach dem Unicode-Sortierreihenfolge, muss der Wert am Ende der vorherigen Werte beginnen.

Um in den Klammerausdruck Bindestrich enthalten, verwenden Sie eine der folgenden Methoden:

  • Mit dem Backslash es:
    [\-]
  • Der Bindestrich am Anfang oder Ende der Liste in Klammern. Die folgenden Ausdrücke passen alle Kleinbuchstaben und Bindestriche:
    [-a-z]
    [a-z-]
    
  • Erstellen Sie einen Bereich, in diesem Bereich ist der Startwert kleiner als der Bindestrich-Zeichen und das Ende Zeichen gleich oder größer als der Bindestrich. Die folgenden zwei reguläre Ausdrücke erfüllen diese Anforderung:
    [!--]
    [!-~]
    

Um eine Liste oder nicht im Rahmen aller Zeichen finden, setzen Sie die Einfügemarke (^) am Anfang der Liste. Wenn eine andere Position in der Liste Zeichen einfügen erscheinen, dann passt er sich. Der folgende reguläre Ausdruck passt auf jedes Zeichen, 4 oder 5 Ziffern und darüber hinaus:

/Chapter [^12345]/

In dem obigen Beispiel entspricht der Ausdruck alle 3, 4 oder 5 Zahlen und andere Zeichen als in der neunten Position. So kann zum Beispiel, Kapitel 7 eine Übereinstimmung vorliegt, Kapitel 9 ist ein Spiel.

(-) Der obige Ausdruck kann einen Bindestrich verwenden, um anzuzeigen:

/Chapter [^1-5]/

Eine typische Verwendung eines Klammerausdruck ist keine Groß- oder Kleinbuchstaben oder eine beliebige Anzahl von Übereinstimmungen angeben. Der folgende Ausdruck gibt ein solches Spiel:

/[A-Za-z0-9]/

Auswechslungen und Gruppierung

Ersetzen Verwendung | Charakter Kommunikation zwischen zwei oder mehr Alternativen zu ermöglichen, zu wählen. Zum Beispiel können Kapiteltitel erweiterte reguläre Ausdrücke werden, um ein breiteres Spektrum zurückzukehren, als die Kapiteltitel übereinstimmt. Dies ist jedoch nicht so einfach, wie Sie vielleicht denken. Ersetzen Spiel | Charakter maximalen Ausdruck jeder Seite.

Man könnte denken, dass der folgende Ausdruck passt erscheint am Anfang und am Ende der Zeile, gefolgt von einer oder zwei Stellen des Kapitels oder des Abschnitts:

/^Chapter|Section [1-9][0-9]{0,1}$/

Leider ist die oben regulären Ausdruck übereinstimmen Linien entweder das erste Wort, Kapitel oder passende Ende der Zeile mit dem Wort Section und alle nachfolgenden Zahlen. Wenn der Eingabezeichenfolge in Kapitel 22, dann wird nur die obigen Ausdruck entspricht dem Wort Kapitel. Wenn der Eingabestring Section 22, dann passt der Ausdruck § 22.

Damit sind reguläre Ausdrücke einfacher zu steuern, können Sie Klammern verwenden, den Umfang des Ersatzes zu begrenzen, nämlich um sicherzustellen, dass es nur die beiden Worte Kapitel und Abschnitt gilt. Allerdings werden Klammern verwendet, um einen Unterausdruck zu erstellen und möglicherweise erfassen, um sie für eine spätere Verwendung, die im Abschnitt über Reverse-Referenzen beschrieben. Durch die oben genannten regulären Ausdrücken Klammern Ort hinzufügen, kann es mit dem regulären Ausdruck Kapitel 1 oder § 3 passend zu machen.

Der folgende reguläre Ausdruck verwendet Klammern Gruppe Kapitel und Abschnitt, um richtig zu funktionieren Ausdruck:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Obwohl diese Ausdrücke funktionieren, aber Kapitel | rund Abschnitt Klammern werden für die spätere Verwendung entweder der beiden Wörter in einem Spiel zu fangen. Da der obige Ausdruck nur einen Satz von Klammern ist, so dass erfasst nur ein "Teilübereinstimmungen."

Im obigen Beispiel müssen Sie nur Klammern verwenden, um eine Kombination von Wörtern zwischen dem Kapitel und Abschnitt auszuwählen. Um zu verhindern, Spiele zu werden für die zukünftige Verwendung gespeichert, bevor das Muster eines regulären Ausdrucks in Klammern gesetzt wird?:. Die folgende Modifikation bietet die gleiche Fähigkeit, ohne das Kind Streichhölzer zu speichern:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Darüber hinaus :? Exon Charakter, die anderen beiden sind nicht die Erfassung Metazeichen etwas namens "Look-Ahead" Spiel erstellen. Vorwärts Look-Ahead-Einsatz? = Angegeben, passt es in Klammern den regulären Ausdruck Muster der Ausgangspunkt der Suchzeichenfolge entsprechen. Look-Ahead-Nutzung umge ?! angegeben, passt es in den regulären Ausdruck nicht die Zeichenfolge Zeichenfolge Start Suche entspricht.

Beispiel: Angenommen, Sie ein Dokument haben, die Links zu Windows 3.1, Windows 95, Windows 98 und Windows NT Referenzen enthält. Nehmen wir weiter an, dass Sie das Dokument in Windows wird darauf aktualisieren müssen 95, Windows 98 und Windows NT alle Referenzen geändert zu Windows 2000. Der folgende reguläre Ausdruck (dies ist das erste Beispiel für eine Vorwärts-Vorhersage) entsprechen Windows 95, Windows 98 und Windows NT:

/Windows(?=95 |98 |NT )/

Finden Sie ein Spiel, das Spiel sofort die Suche nach dem nächsten Spiel auf den Text (ohne Look-Ahead-Zeichen) nach. Zum Beispiel, wenn der obige Ausdruck Windows 98 angepasst, wird stattdessen die Suche nach 98, nachdem Windows fortzusetzen.

andere Beispiele

Hier sind einige Beispiele für reguläre Ausdrücke:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。