Reguläre Ausdrücke

Reguläre Ausdruck werden in allen Datenbasis-Suchfeldern einschließlich der Abfragen-Entitätsbedienfelder verwendet.

Über reguläre Ausdruck

Ein regulärer Ausdruck ist ein Textmuster, das aus einer Kombination aus alphanumerischen Zeichen und Sonderzeichen, so genannten Metazeichen, besteht, die Muster suchen und Unterzeichenfolgen aus Text extrahieren. Reguläre Ausdrücke werden in der Computerprogrammierung weit verbreitet und sind integraler Bestandteil von Sprachen wie Perl.

Zur Identifizierung und Extrahierung komplexer Zeichenfolgen-Muster verwendet der Data Workbench-Server in einigen der Transformationen und Bedingungen reguläre Ausdruck. Im Folgenden finden Sie eine kurze Anleitung zu regulären Ausdrücken.

Dieser Anhang stellt keine umfassende Einführung in reguläre Ausdrücke dar. Eine besonders gute Referenz ist die O'Reilly Veröffentlichung Mastering Regular Ausdrucks, 2. Ausgabe von Jeffrey E. F. Friedl.

Terminologie regulärer Ausdruck

Begriff Definition
Literal Ein Literal ist ein Zeichen, das wir in einem regulären Ausdruck verwenden, um eine bestimmte Zeichenfolge zu finden. Um zum Beispiel ein Produkt in zu finden, shop/products.htmlist das String-Produkt ein Literal oder was wir buchstäblich in der Zeichenfolge suchen.
Metazeichen Ein Metazeichen ist ein Sonderzeichen mit einer eindeutigen Interpretation im Kontext regulärer Ausdruck. Beispiel: Der Zeitraum (.) ist ein Metazeichen, mit dem einem beliebigen Zeichen entsprochen wird.
Escape-Sequenz Eine Escape-Sequenz ist einfach eine Möglichkeit, der normalen Ausdruck-Engine zu sagen, dass wir eines der Metazeichen als Literal verwenden möchten. Escape-Sequenzen werden immer mit dem umgekehrten Schrägstrich (\) Beginn. Durch Platzierung des Backslash (der auch ein Metazeichen ist) vor einem Metazeichen interpretiert die Engine des regulären Ausdrucks das mit Escapezeichen versehene Metazeichen als Literal. Wenn Sie beispielsweise den Metazeichenzeitraum (.) einhalten möchten, müssen Sie eine Escape-Sequenz verwenden. Um jedoch einem der Punkte in der Zeichenfolge 168.196.0.11 zu entsprechen, können Sie den regulären Ausdruck verwenden, der aus einem umgekehrten Schrägstrich und einem Punkt (\.) besteht.
Muster Dies ist eine kurze Terminologie für den regulären Ausdruck. Ein regulärer Ausdruck ist im Wesentlichen ein Muster, das Sie mit der Zielgruppe-Zeichenfolge abgleichen möchten.
Zielgruppe-Zeichenfolge Dieser Begriff bezieht sich auf die Zeichenfolge, in der wir nach dem gewünschten Muster suchen.

Grundlagen zur Literalübereinstimmung

Bei der Literalübereinstimmung wird eine Zeichenfolge ohne Escape-Zeichen verwendet und in der Zielgruppe-Zeichenfolge wird geprüft, ob es sich um eine Unterzeichenfolge der Zielgruppe-Zeichenfolge handelt.

In diesem Beispiel sehen Sie, wie wörtliche Übereinstimmung funktioniert. Betrachten Sie eine Situation, in der Daten aus dem Website-Traffic erfasst werden und das Feld cs(Werber) den folgenden Wert enthält:

http://www.abc.com/adventurenews/today.html?ad=123AZ45

Um festzustellen, ob der Werber eine Person darstellt, die auf eine der Anzeigen geklickt hat, müssen Sie sehen, ob der Werber die Zeichenfolgenanzeige enthält. Sie können die Zeichenfolgenanzeige einfach verwenden, um die Zielgruppe-Zeichenfolge zu durchsuchen und festzustellen, ob eine Werbung verwendet wurde, um den Traffic zur Site zu leiten. Obwohl dies mit der Zielgruppe-Zeichenfolge übereinstimmen würde, würde sie an zwei Stellen übereinstimmen und ist daher mehrdeutig und kann zu Falsch-Positiv-Werten führen.

Die folgende URL enthält die Zeichenfolgenanzeige an zwei verschiedenen Stellen:

http://www.abc.com/ad vertnews/today.html?ad =123AZ45

Wenn Sie also versuchen, festzustellen, welche Sitzungen aufgrund einer bestimmten Kampagne gestartet wurden, reicht die einfache Verwendung der Literalanzeige als regulärer Ausdruck eindeutig nicht aus. Wenn Sie das Literal in "ad="ändern, wird diese Unklarheit beseitigt, sodass der Ausdruck nur eine Übereinstimmung macht. Auch dies kann jedoch nicht ausreichen, um sicherzustellen, dass der Werber Teil der Kampagne war. Betrachten Sie den folgenden Werber:

http://www.xyz.com/hello.html?pad=something

Sie haben keine Kontrolle über die URLs, die andere zum Erstellen von Links zur Site verwenden. Die wörtliche Abstimmung ist zu einfach, um Sitzungen zu finden, die aufgrund der Kampagne der Werbung gestartet wurden. Im folgenden Abschnitt wird erläutert, wie Sie Metazeichen für flexiblere und leistungsfähigere Übereinstimmungen verwenden können.

Metazeichen verwenden

Ein Metazeichen ist ein Sonderzeichen in einem Programm oder Datenfeld, das Informationen zu anderen Zeichen bereitstellt.

Metazeichen Beschreibung
(Punkt) Entspricht einem einzelnen Zeichen, z. B.: re:x.z entspricht "xyz"oder "xxz".
* (Stern) Entspricht einem oder mehreren Zeichen, z. B.: re:Z* findet "ZZZ".
? (Platzhalter) Sucht nach 0 oder 1 des vorherigen Ausdrucks, um eine minimale Übereinstimmung zu erzwingen. Beispiel: xy?z entspricht "xy"und "xyz".

Zusätzliche reguläre Ausdruck können auch verwendet werden, um komplexere Suchzeichenfolgen zu erstellen.

Listen, Bereiche und ODER

Bei der Literalzuordnung können Sie nach einer einzigen Zeichenfolge suchen. Mit Klammern, Bindestrichen und Rohren können Sie jedoch eine Liste von Elementen definieren, nach denen Sie in der Zielgruppe suchen müssen.

Für dieses Metazeichen... Der reguläre Ausdruck-Prozessor wird...
eckige Klammern ([ ]) Ordnen Sie einem beliebigen Zeichen in der Klammer eine einzelne Zeichenposition zu. Beispielsweise ist [AB] eine Anweisung, entweder den Buchstaben A oder B zuzuordnen, und [0123456789] sagt, dass eine Übereinstimmung mit einem beliebigen Zeichen im Bereich von 0 bis 9 vorliegt.
Bindestrich (-)

Stimmt mit einem Zeichenbereich überein. Anstatt also [0123456789] zu schreiben, konnten wir einfach [0-9] schreiben.

Dies kann auf Zeichenbereiche und mehrere Bereiche innerhalb eines Satzes von Klammern erweitert werden. [0-9A-C] entspricht beispielsweise den Zeichen 0 bis 9 und A bis C.

Hinweis: Um einen Bindestrich (-) als Literal in den Klammern zu testen, muss er an erster oder letzter Stelle stehen. Beispiel: [-0-9] Tests für - und 0 bis 9.

Verkettungszeichen (|) Ordnen Sie eine der beiden Optionen einer angegebenen Zielgruppe-Zeichenfolge zu. Beispiel: "b|nat"entspricht entweder "bat"oder "nat".

Sehen Sie sich folgende Beispiele an:

Muster Zeichenfolge Übereinstimmung
Win9[58] OS=Win95 Win95
Win95 8 OS=Win98
[0-9] Mozilla/3.0 3
Lektion[A-Z] Lektion a Keine Übereinstimmung, da a in der unteren Leiste nicht im Bereich der oberen Leiste A bis Z liegt.

Negation

Negation ist eine Möglichkeit, zu sagen, dass Sie alles mit Ausnahme der angegebenen Zeichen übereinstimmen möchten. Das Negations-Metazeichen Zirkumflex oder Caret (^) wird als erstes Zeichen in Klammern verwendet, um zu sagen, dass es sich bei der Übereinstimmung um alles andere als die restlichen Zeichen in den Klammern handeln soll. Wenn Sie beispielsweise ein beliebiges Zeichen außer einem Semikolon (;) abgleichen möchten, schreiben Sie

[^;]

Dies würde mit allen Zeichen außer dem Semikolon übereinstimmen.

Positionierung

Um eine Übereinstimmung am Anfang oder am Ende einer Zielgruppe-Zeichenfolge zu erzwingen, wird eines von zwei Metazeichen verwendet.

Für dieses Metazeichen… Der reguläre Ausdruck-Prozessor wird…
Circumflex oder Caret (^) Übereinstimmung mit dem Anfang der Zeichenfolge. Beispiel: ^[Tt]er würde mit der Zielgruppe-Zeichenfolge "Der Anfang"übereinstimmen, aber nicht mit "Dies ist der Anfang".
Dollarzeichen ($) Übereinstimmung mit dem Ende der Zeichenfolge. So würde [Ee]nd$ z. B. mit "This is the end"übereinstimmen, aber nicht mit "The end is a special time".
Hinweis

Wenn der reguläre Ausdruck am Anfang ^ und am Ende $ enthält, muss die gesamte Zielgruppe mit dem regulären Ausdruck übereinstimmen.

Übereinstimmung mit allem

Der Zeitraum (.) ist ein spezielles Metazeichen, das mit jedem Zeichen in der Zielgruppe-Zeichenfolge übereinstimmt. Der reguläre Ausdruck ^…$ stimmt beispielsweise mit jeder Zielgruppe-Zeichenfolge überein, die genau drei Zeichen lang ist. Der reguläre Ausdruck "…"stimmt mit jeder Zielgruppe-Zeichenfolge überein, die mindestens drei Zeichen enthält.

Wiederholte Muster

Mit Metazeichen für Iterationen können Sie ein Muster mehrmals abgleichen.

Für dieses Metazeichen... Der reguläre Ausdruck-Prozessor wird...
Fragezeichen (?) Ordnen Sie keine Instanzen oder eine Instanz des Zeichens unmittelbar vor dem Metazeichen (?) zu. Das Muster "rea?d"entspricht beispielsweise Rot und Lesen.
Sternchen (*) Sucht nach null oder mehreren Vorkommen des Zeichens unmittelbar vor dem Metazeichen (*). Das Muster [0-9]* entspricht beispielsweise einer beliebigen Zahl der Zeichen 0 bis 9 (beliebige Ganzzahl).
Plus (+) Entspricht einem oder mehreren Vorkommen des vorherigen Zeichens oder Bereichs. Das Muster dre+ würde beispielsweise mit drei übereinstimmen, jedoch nicht mit der Durchmusterung.
{n}

Ordnen Sie dem Zeichen oder Bereich des Vorgangs exakt n Mal zu. Das folgende Muster stimmt mit den Telefonnummern in den USA überein: [0-9]{3}-[0-9]{3}-[0-9]{4}.

Es ist zwar kein optimales Muster, bestimmt aber, ob die Zielgruppe im richtigen Format vorliegt.

{n,m} Ordnen Sie das vorhergehende Zeichen mindestens n- und höchstens m-mal zu. So würde z. B. "fo{1,2}d"mit Lebensmitteln und Lebensmitteln übereinstimmen, jedoch nicht mit Lebensmitteln.

Extraktion des Musters

Die Musterübereinstimmung ist nur ein Teil der Leistungsfähigkeit regulärer Ausdruck. Reguläre Ausdruck bieten auch einen Mechanismus zum Extrahieren von Schlüsselteilen einer Zielgruppe-Zeichenfolge. Dies geschieht mithilfe der Klammern links und rechts. Diese Extraktionen werden in der Regel als Eingabe in einen anderen Prozess verwendet und über %position% aufgerufen, wobei die Position eine Ganzzahl ist, die auf die Anzahl der Klammern verweist, die übereinstimmen.

Betrachten Sie die folgenden Beispiele für die Extraktion von Mustern:

Muster Zeichenfolge Übereinstimmung Extraktion
Win(9[58]) OS=Win95 Win95 %1% = 95
(Win)(95|8) OS=Win98 Win98

%1% = Win

%2% = 98

Mozilla/([0-9]).([0-9]) Mozilla/3.0 Mozilla/3.03

%1% = 3

%2% = 0

Lektion([A-Z]) Lektion a Keine Übereinstimmung, da a mit niedrigerem Gehäuse nicht im Bereich der oberen A bis Z liegt

Auf dieser Seite