Was ist Regex?

Eine Regex, kurz für regulärer Ausdruck, ist eine Textfolge, mit der Sie Muster erstellen können, die beim Abgleichen, Auffinden und Verwalten von Text helfen. Perl ist ein großartiges Beispiel für eine Programmiersprache, die reguläre Ausdrücke verwendet. Dies ist jedoch nur einer der vielen Orte, an denen Sie reguläre Ausdrücke finden können. Reguläre Ausdrücke können auch von der Befehlszeile und in Texteditoren verwendet werden, um Text in einer Datei zu finden.

Beim ersten Versuch, reguläre Ausdrücke zu verstehen, scheint es, als wäre es eine andere Sprache. Das Beherrschen regulärer Ausdrücke kann Ihnen jedoch Tausende von Stunden sparen, wenn Sie mit Text arbeiten oder große Datenmengen parsen müssen. Unten sehen Sie ein Beispiel für einen regulären Ausdruck, bei dem jede seiner Komponenten beschriftet ist. Dieser reguläre Ausdruck wird auch in den später auf dieser Seite gezeigten Perl-Programmierbeispielen gezeigt.

Regulären Ausdruck

Die Grundlagen regulärer Ausdrücke (Spickzettel)

Der Blick auf das obige Beispiel kann überwältigend sein. Sobald Sie jedoch die grundlegende Syntax der Funktionsweise von Befehlen mit regulären Ausdrücken verstanden haben, können Sie das obige Beispiel lesen, als ob Sie diesen Satz lesen würden. Leider verwenden nicht alle Programme, Befehle und Programmiersprachen die gleichen regulären Ausdrücke, aber sie haben alle Gemeinsamkeiten.

Charakter Was tut es? Beispiel Streichhölzer
^ Entspricht dem Zeilenanfang ^ abc abc, abcdef.., abc123
$ Entspricht dem Zeilenende abc$ mein:abc, 123abc, dasabc
. Passen Sie ein beliebiges Zeichen an ac abc, asg, a2c
|

OR-Operator

abc|xyz abc oder xyz
(…)

Erfassen Sie alles passende

(ABC) Erfasst ‘a’ und ‘c’
(?:…) Nicht einfangende Gruppe (ABC) Erfasst ‘a’, aber nur Gruppen ‘c’
[…] Entspricht allem, was in Klammern steht [abc] a, b oder c
[^…] Entspricht allem, was nicht in Klammern steht [^abc] xyz, 123, 1de
[a-z] Entspricht allen Zeichen zwischen ‘a’ und ‘z’ [b-z] bc, Verstand, xyz
{x} Die exakte „x“-Anzahl der Übereinstimmungen (ab){2} abcabc
{x,} Entspreche ‘x’ oft oder öfter (ab){2,} abcabc, abcabcabc
{x,y} Ãœbereinstimmung zwischen ‘x’- und ‘y’-Zeiten. (a){2,4} aa, aaa, aaaa
*

Greedy-Match, das mit allem übereinstimmt, anstelle des *

ABC abc, abcc, abcdc
+ Entspricht Zeichen vor + einmal oder mehrmals a+c ac, ac, ac,
? Entspricht dem Zeichen vor dem ? null oder einmal. Wird auch als nicht gieriges Streichholz verwendet ABC ac, abc
Maskieren Sie das Zeichen nach dem umgekehrten Schrägstrich oder erstellen Sie eine Escape-Sequenz. asc ac

Escape-Zeichen (Escape-Sequenz)

Notiz

Bei Escape-Zeichen wird zwischen Groß- und Kleinschreibung unterschieden.

Charakter Was tut es?
Jedes unten nicht erwähnte Zeichen, dem ein vorangestellt ist, wird maskiert. Zum Beispiel, . entspricht einem Punkt und führt die oben genannte Funktion nicht aus. Zeichen, die maskiert werden sollten, sind () [] {} ^ $ . | * + ?

Nullzeichen.

ein In Perl ist a eine Glocke oder ein Alarm und wird nicht in regulären Ausdrücken verwendet.
EIN Entspricht dem Anfang einer mehrzeiligen Zeichenfolge.
B Wortgrenze in den meisten oder Backspace.
B Keine Wortgrenze.
D Ãœbereinstimmung mit einer beliebigen Dezimalziffer (0-9).
D Passen Sie jede Nicht-Ziffer an.
e Passen Sie eine Flucht an.
F Ãœbereinstimmung mit einem Formular-Feed.
n Passen Sie eine neue Zeile an.
Q…E Ignoriert jede besondere Bedeutung in dem, was abgeglichen wird.
R Übereinstimmung mit einem Wagenrücklauf.
S Entspricht einem Leerzeichen (Leerzeichen, t, r, n).
S Entspricht jedem Nicht-Leerraumzeichen.
T Passen Sie eine Registerkarte an.
v Ãœbereinstimmung mit einem vertikalen Tabulator.
w Entspricht einem beliebigen Ein-Wort-Zeichen ([a-zA-Z_0-9]).
W Entspricht einem beliebigen Nicht-Wort-Zeichen.

Flags für reguläre Ausdrücke

Außerhalb des regulären Ausdrucks (am Ende) helfen Flags beim Musterabgleich.

Charakter Was tut es?
ich Groß- und Kleinschreibung ignorieren (Groß- und Kleinschreibung erlaubt).
m Mehrzeilige Ãœbereinstimmung.
S Ordne neue Zeilen zu.
x Leerzeichen und Kommentare zulassen.
J Doppelte Gruppennamen erlaubt.
U

Ungieriges Spiel.

Beispiele für reguläre Ausdrücke in der Programmiersprache Perl

Nachfolgend finden Sie einige Beispiele für reguläre Ausdrücke und Mustererkennung in Perl. Viele dieser Beispiele sind anderen Programmiersprachen und Programmen, die reguläre Ausdrücke unterstützen, ähnlich oder gleich.

$data =~ s/bad data/good data/i;

Das obige Beispiel ersetzt alle “schlechten Daten” durch “gute Daten”, indem eine Ãœbereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung verwendet wird. Wenn also die $data-Variable “Hier sind schlechte Daten” wäre, würde sie zu “Hier sind gute Daten”.

$data =~ s/a/A/;

Dieses Beispiel ersetzt jedes kleine a durch ein großes A. Wenn also $data “example” wäre, würde es zu “exAmple” werden.

$data =~ s/[a-z]/*/;

Das obige Beispiel ersetzt alle Kleinbuchstaben, a bis z, durch ein Sternchen. Wenn also $data “Example” wäre, würde es zu “E******” werden.

$data =~ s/e$/es/;

In diesem Beispiel wird das $-Zeichen verwendet, das dem regulären Ausdruck mitteilt, dass er mit dem Text davor am Ende der Zeichenfolge übereinstimmen soll. Wenn also $data “example” wäre, würde es “examples” werden.

$data =~ s/./!/;

Im obigen Beispiel ersetzen wir einen Punkt durch ein Ausrufezeichen. Da der Punkt ein Metazeichen ist, wenn Sie nur einen Punkt ohne (Escape) eingegeben haben, wird er wie ein beliebiges Zeichen behandelt. Wenn in diesem Beispiel $data “example” wäre. es würde zu „Beispiel!“ werden, aber wenn Sie kein Escapezeichen hätten, würde es jedes Zeichen ersetzen und zu „!!!!!!!!“ werden.

$data =~ s/^e/E/;

Schließlich teilt das Caret-Zeichen ( ^ ) in diesem obigen Beispiel dem regulären Ausdruck mit, dass er mit allem am Anfang der Zeile übereinstimmen soll. In diesem Beispiel wird jedes kleine „e“ am Anfang der Zeile durch ein großes „E“ ersetzt. Wenn also $data “Beispiel” wäre, würde es zu “Beispiel” werden.

Tipp

Wenn Sie noch mehr über reguläre Ausdrücke in Befehlen wie grep oder reguläre Ausdrücke in Programmiersprachen erfahren möchten, lesen Sie das O’Reilly-Buch “Mastering regular expressions”.

Computerakronyme, Escape-Sequenz, Ausdruck, Glob, Metazeichen, Programmierbegriffe, Tilde, Wildcard

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here