GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Regex-Spickzettel/Grundlagen

Regex-Spickzettel/Grundlagen

Reguläre Ausdrücke (regex oder regexp) sind ein sehr nützliches Werkzeug, um bestimmte Muster in beliebigem Text zu identifizieren, was dabei hilft, Informationen unabhängig vom Format des Textes zu extrahieren.

Regex kann verwendet werden, um Eingaben zu validieren, Web-Scraping, bestimmte Strings in Dokumenten zu finden, Syntax-Validierung für Compiler und so viele andere Beispiele.

Regex wird häufig in mehreren Programmiersprachen verwendet, die fast dieselbe Syntax verwenden, daher gibt dieser Artikel vor, die grundlegenden Regex-Operatoren zu zeigen.

Die folgenden Abschnitte zeigen die verschiedenen Operatoren, die für Regex verwendet werden, sowie einige Beispiele. Sie können Ihre regulären Ausdrücke auch mit einigen Erläuterungen auf dieser Seite testen.

Anker

Zeichen Verwenden
^ Gibt den Anfang der Zeichenfolge an. Es wird nur die Zeichenfolge gefunden, die mit den folgenden Zeichen beginnt
$ Gibt das Ende der Zeichenfolge an. Dies entspricht jeder Zeichenfolge, die mit dem/den Zeichen vor dem Symbol „$“ endet
abc Entspricht jeder Zeichenfolge, die die Zeichenfolge „abc“ enthält

Einige Beispiele sind:

Beispiel Beschreibung Beispiele für übereinstimmende Zeichenfolgen
^A Übereinstimmung mit allen Zeichenfolgen, die mit einem A beginnen A n Apfel ist im Baum“, „A neues Restaurant“
Ende$ Entspricht einer Zeichenkette, die mit der Zeichenfolge „end“ endet „Das Ende “, „Tun wir Ende vor ”
^Hallo Welt$ Entspricht genau der Zeichenfolge „Hello world“ Hallo Welt
Reihenfolge Entspricht jeder Zeichenfolge, die den Text „Bestellung“ enthält „Meine Bestellung Nummer ist 54”

Quantifizierer

Quantifizierer werden verwendet, um die Zeiten darzustellen, zu denen der vorangehende Charakter oder die Gruppe von Charakteren in unserem Match erscheinen soll.

Zeichen Verwenden
* Gibt null oder mehr an
+ Zeigt ein oder mehrere an
? Gibt null oder eins an
x{n} Wird verwendet, um anzugeben, wie oft ('n') das vorherige Zeichen ('x') erscheinen soll
x{n, } Wird verwendet, um anzugeben, wie oft ('n') das vorherige Zeichen ('x') mindestens erscheinen soll
x{n, m} Wird verwendet, um die minimale ('n') und maximale ('m') Häufigkeit festzulegen, mit der das vorherige Zeichen ('x') erscheinen soll

Einige Beispiele sind:

Beispiel Beschreibung Beispiele für übereinstimmende Zeichenfolgen
Hallo!* Entspricht einer beliebigen Zeichenfolge „Hallo“, gefolgt von null oder mehr „!“-Zeichen Hallo “, „Hallo! “, Hallo!!
Hallo!+ Entspricht einer beliebigen Zeichenfolge „Hallo“, gefolgt von einem oder mehreren „!“-Zeichen Hallo! “, „Hallo!!
Hallo!? Entspricht einer beliebigen Zeichenfolge „Hallo“, gefolgt von null oder einem „!“-Zeichen Hallo “, „Hallo!
(ha){2,4} Entspricht jeder Zeichenfolge, die die Zeichengruppe „ha“ zwei- bis viermal wiederholt haha “, „hahaha “, „hahahaha

ODER-Operator

Zeichen Verwenden
a|b Entspricht jeder Zeichenfolge, die entweder „a“ oder „b“ enthält
[ ] Wird zur Darstellung einer Liste verwendet, passt also zu einer Zeichenfolge, die eines der Zeichen in der Liste enthält

Einige Beispiele sind:

Beispiel Beschreibung Beispiele für übereinstimmende Zeichenfolgen
se(a|e) Entspricht jeder Zeichenfolge, die den Text „se“ gefolgt von entweder einem „a“ oder einem „e“ enthält siehe “, „Meer
a[bcd] Entspricht jeder Zeichenfolge, die ein „a“ gefolgt von entweder „b“, „c“ oder „d“ enthält ab “, „ac “, „Anzeige

Zeichenklassen

Mit den Operatoren für Zeichenklassen können Sie Zeichen innerhalb einer Kategorie (Klasse) abgleichen. Diese Operatoren bieten ihre Negationen an, die dieselben wie die normalen Operatoren sind, jedoch in Großbuchstaben.

Zeichen Verwenden
\d Entspricht einer einzelnen Ziffer Charakter
\w Entspricht einem einzelnen Wort Zeichen (Buchstaben, Zahlen und Unterstrich)
\s Entspricht einem einzelnen Leerzeichen Zeichen, einschließlich Tabulatoren und Zeilenumbrüche
\D Entspricht einer einzelnen Nicht-Ziffer Charakter
\W Entspricht einem einzelnen Nichtwort Zeichen (Buchstaben, Zahlen und Unterstrich)
\S Entspricht einem einzelnen Nicht-Leerzeichen Zeichen, einschließlich Tabulatoren und Zeilenumbrüche
. Entspricht jedem einzelnen Zeichen

Flaggen

Regex verwendet normalerweise die Form /pattern/ . Am Ende können wir die folgenden Flags verwenden:

Flagge Beschreibung
g Die globale flag wird verwendet, um nach allen einzelnen Übereinstimmungen innerhalb der Zeichenfolge zu suchen. Wenn es nicht verwendet wird, wird der Ausdruck nach der ersten Übereinstimmung zurückgegeben
m Die Mehrzeile Flag erlaubt die Verwendung von ^ und $ als Anfang und Ende einer Zeile, nicht als Anfang und Ende der Zeichenfolge, die mehrere Zeilen enthalten kann
i Der unempfindliche Flag macht die Groß-/Kleinschreibung des regulären Ausdrucks unempfindlich

Schlussfolgerungen

Regex hat viele Verwendungsmöglichkeiten. Sie können die in diesem Artikel erläuterten einfachen Operatoren kombinieren, um komplexe Suchmuster zu erstellen. Ein Beispiel ist die Validierung einer E-Mail-Adresse, dies kann mit dem folgenden regulären Ausdruck erfolgen:

^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$

Dieses Beispiel entspricht einer vollständigen Zeichenfolge, für die ein Muster in der folgenden Reihenfolge gesucht wird:

  • [\w-\.]+ :eine Kombination aus einem oder mehreren Wortzeichen, Bindestrichen oder Punkten
  • @ :das @-Symbol
  • ([\w-]+\.)+ :eine oder mehrere Kombinationen aus einem oder mehreren Wortzeichen oder Bindestrichen, die mit einem Punkt enden (für Domains und Subdomains in der E-Mail wie email.rackspace.)
  • [\w-]{2,4} :eine Kombination aus 2, 3 oder 4 Wortzeichen oder Bindestrichen für den Endteil der E-Mail (com)

Genau wie dieses Beispiel gibt es viele andere, die für verschiedene Zwecke leicht implementiert werden können.


Linux
  1. So verwenden Sie Tmux + Cheat Sheet

  2. Spickzettel für IPtables-Befehle

  3. Yum-Befehls-Spickzettel

  4. Cheat Sheet für Linux-Befehle

  5. Grundlegende vi-Befehle (Spickzettel)

Cheat Sheet für Linux-Befehle:Mit Beispielen

Git-Befehls-Spickzettel

Spickzettel für MySQL-Befehle

Kali Linux Tastaturkürzel Spickzettel

Grundlegende Nano-Befehle (Spickzettel)

Grundlegende vim-Befehle (Spickzettel)