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.
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)
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 () [] {} ^ $ . | * + ? | |