Ergebnis 1 bis 1 von 1

Thema: Einführung in die Welt der "Regulären Ausdrücke" - RegEx

Baum-Darstellung

  1. #1
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632

    Einführung in die Welt der "Regulären Ausdrücke" - RegEx

    Vorwort: Bitte achtet darauf, wann ihr auf reguläre Ausdrücke zurückgreift. Je nachdem welche Aufgabe man damit erfüllen möchte gibt es sinnvollere Alternativen. Zwar mag der reguläre Ausdruck als Code schöner aussehen, doch kann es in bestimmten Fällen auch dazu führen, dass die Laufzeit wesentlich länger ist, als es durch eine alternative Weise nötig wäre.

    Dieses Tutorial ist lediglich eine Einführung zu regulären Ausdrücken. Am Ende befinden sich weitere Materialien, die dabei helfen schnell ein Gefühl für reguläre Ausdrücke zu erhalten und diese zu überprüfen.

    1. Aufbau und Definition:

    Ein regulärer Ausdruck ist nach folgendem Muster aufgebaut: Delimiter Suchmuster Delimiter Modifier

    Delimiter:
    • Grenzt das Suchmuster vom Modifier ab
    • kann jedes nicht-alphanumerische Zeichen sein
    • standardmäßig wird / gewählt


    Suchmuster:
    • gibt an wie der eigentliche String aussehen soll
    • ist der reguläre Ausdruck


    Modifier:
    • ist optional
    • enthält erweiterte Modifikationen die auf den regulären Ausdruck angewendet werden
    • Bsp.: ignorieren von Groß- und Kleinschreibung,..




    2. Suchen von einfachen Texten

    Suchen von festgelegten Wörtern:

    Beim Suchen von festgelegten Wörtern muss lediglich das Wort selbst angegeben werden. In einem einfachen Beispiel würde es folgendermaßen aussehen:

    Beispiel:

    Code:
    /foo/
    #foo#
    Gibt Treffer zurück, wenn der String foo enthält.

    Suchen von Wörtern die RegEx-Metazeichen enthalten:
    Nicht jeder String soll gewöhnliche Zeichen enthalten. In bestimmten Fällen wird man auch auf Zeichen zurückgreifen, die bei RegEx eine bestimmte Aufgabe erfüllen oder einleiten. Im Folgenden ein Beispiel dazu.

    Beispiel:

    Richtiger RegEx-Ausdruck:
    Code:
    /\*\*\*/
    Falscher RegEx-Ausdruck:
    Code:
    /***/
    Beim * handelt es sich um ein Metazeichen der regulären Ausdrücke. Es dient als Quantifier und wird nicht als normales Zeichen angesehen. Aus diesem Grund muss es, sollte man es in diesem Sinne nutzen wollen durch \ maskiert werden. Erst dann wird es als Literal angesehen.

    Folgende Zeichen müssen maskiert werden: ( ) { } [ ] \ | / + ? * . ^ & -

    mehr zum Thema Metazeichen..



    3. Suchen von komplexeren Texten mithilfe von Metazeichen

    An dieser Stelle empfiehlt es sich die diversen Metazeichen der regulären Ausdrücke zu Gemüte geführt zu haben. Im Folgenden werden einige Beispiele gezeigt, wie man mithilfe von Metazeichen und Modifieren diverse Abfragen starten kann.

    Verwendung von Modifiern:

    Sieht man sich den Aufbau eines regulären Ausdrucks an, so wird gesagt, dass ein Modifier nur am Ende eines Textes stehen darf. Ein einfaches Beispiel dafür wäre:

    Code:
    /([A-Z]/g
    Hier wird durch [A-Z] gesagt, dass der reguläre Ausdruck lediglich Großbuchstaben enthalten darf. /g legt fest, dass auch alle Treffer gefunden werden.

    Würde man nun eine Eingabe abcd tätigen, so werden keine Treffer gefunden. Durch den Modifier kann man dies jedoch beeinflussen.

    Code:
    /([A-Z])/gi
    Auch hier könnte man nun mit derselben Eingabe abcd den regulären Ausdruck überprüfen. Im Gegensatz zur ersten Variante hat man durch /i die Überprüfung der Groß- und Kleinschreibung deaktiviert, sodass man an dieser Stelle 4 Treffer erhalten würde.

    Im nächsten Schritt wird die Komplexität etwas erhöht.

    Code:
    /([A-Z]+)([a-z]+)([A-Z]+)$/
    Man sollte hierbei den Ausdruck aufteilen. Am Anfang wird festgelegt, dass eine beliebige Zeichenkette stehen darf. Ein Treffer findet statt wenn mindestens ein Großbuchstabe ([A-Z]+) gefolgt von mindestens einem Kleinbuchstaben ([a-z]+) gefolgt von wieder mindestens einem Großbuchstaben erfolgt und dieser auch darauf endet. Möchte man festlegen, dass es mit dem Ausdruck starten soll, so ist es nötig ein ^ zu verwenden. Soll es darauf enden wird ein $ verwendet.

    Treffer könnten daher sein: AbC, AAAbCC, ..

    Hier geht es dann zur Überleitung in den Bereich der Inline-Modifier. Sieht man sich erneut den Aufbau der regulären Ausdrucks an, so erscheint es, dass diese Modifier lediglich am Ende des Ausdrucks nach dem Delimiter stehen dürfen. Dem ist jedoch nicht so. Hier zwei Beispiele für Inline-Modifier:

    Code:
    /^([A-Z]+)(?i:[a-z]+)([A-Z]+)$/
    In diesem Fall wird festgelegt, dass für den mittleren Bereich, welcher nur Kleinbuchstaben erlaubt die Groß- und Kleinschreibüberprüfung deaktiviert wird. Dies geschieht über die Eingabe (?i:[a-z]+).

    Das bedeutet, dass auch folgende Treffer möglich wären: ABBBCC, AbC,...
    Nicht gültig wären Eingaben wie: ABc, aBCC, abcc,..

    Neben der Aktivierung eines Modifiers für eine bestimmte Gruppe, kann man es auch von einem bestimmten Punkt aus festlegen.

    Code:
    /^([A-Z]+)(?i)([a-z]+)([A-Z]+)$/
    Hierbei gilt, dass ab (?i) die Überprüfung der Groß- und Kleinschreibung deaktiviert wird. Dementsprechend können folgende Wörter gebildet werden: ABccc , AbCC, Abbbc,..

    Möchte man den Inline-Modifier wieder deaktivieren, so wird in diesem Fall ein (?-i) gesetzt.
    Code:
    /^([A-Z]+)(?i)([a-z]+)(?-i)([A-Z]+)$/
    Dementsprechend gelten ab hier wieder folgende Treffer: ABBBCC, AbC,...



    4. Weitere Materialien

    Informationen zu RegEx-Ausdrücken:



    Online-RegEx Überprüfung mit hilfreichen Informationen:

  2. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 12.06.2021, 09:52
  2. N24/Welt.de - "Wie man auch ohne Abi reich werden kann"
    Von syrius im Forum Allgemeine News
    Antworten: 0
    Letzter Beitrag: 12.03.2017, 10:06
  3. (Java) - Regex, "das richtige in Zeile 3"
    Von Nope im Forum Entwicklung / Programmierung
    Antworten: 13
    Letzter Beitrag: 16.11.2016, 10:49
  4. Antworten: 2
    Letzter Beitrag: 15.02.2016, 14:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org