Mehr über die Data Workbench Mitteilung zum Ende der Nutzungsdauer.
Reguläre Ausdrücke werden in allen Data Workbench-Suchfeldern verwendet, einschließlich der Bedienfelder für die Abfrageentität.
Ein regulärer Ausdruck ist ein Textmuster, das aus einer Kombination aus alphanumerischen Zeichen und Sonderzeichen, die als Metazeichen bezeichnet werden, besteht und Muster lokalisiert und Teilzeichenfolgen aus Text extrahiert. Reguläre Ausdrücke werden häufig in der Computerprogrammierung verwendet und sind integraler Bestandteil von Sprachen wie Perl.
Um komplexe Zeichenfolgenmuster zu identifizieren und zu extrahieren, verwendet der Data Workbench-Server in einigen der Umwandlungen und Bedingungen reguläre Ausdrücke. Im Folgenden finden Sie eine kurze Anleitung zu regulären Ausdrücken.
Dieser Anhang ist keine umfassende Einführung in reguläre Ausdrücke. Eine besonders gute Referenz ist die Veröffentlichung von O'Reilly Mastering Regulärer Ausdrücke, 2. Ausgabe von Jeffrey E. F. Friedl.
Begriff | Definition |
---|---|
Literal | Ein Literal ist ein Zeichen, das wir in einem regulären Ausdruck verwenden, um eine bestimmte Folge von Zeichen zu finden. So suchen Sie beispielsweise nach einem Produkt in shop/products.html, ist das String-Produkt ein Literal oder was wir buchstäblich in der Zeichenfolge suchen. |
Metazeichen | Ein Metazeichen ist ein Sonderzeichen, das eine eindeutige Interpretation im Kontext regulärer Ausdrücke hat. Beispielsweise der Punkt (.) ist ein Metazeichen, mit dem ein beliebiges Zeichen abgeglichen wird. |
Escape-Sequenz | Eine Escape-Sequenz ist einfach eine Möglichkeit, der Engine für reguläre Ausdrücke mitzuteilen, dass wir eines der Metazeichen als Literal verwenden möchten. Escape-Sequenzen beginnen immer mit einem umgekehrten Schrägstrich (\ ). Durch Platzierung des umgekehrten Schrägstrichs (bei dem es sich auch um ein Metazeichen handelt) vor einem Metazeichen interpretiert die Engine für reguläre Ausdrücke das maskierte Metazeichen als Literal. Wenn Sie beispielsweise den Metazeichenzeitraum (. ), 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 (\. ). |
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 Zielzeichenfolge abgleichen möchten. |
Zielzeichenfolge | Dieser Begriff bezieht sich auf die Zeichenfolge, in der wir suchen, um das gewünschte Muster zu finden. |
Die literale Übereinstimmung nimmt eine literale Zeichenfolge ohne Escape-Zeichen und sucht in der Zielzeichenfolge, um zu sehen, ob es sich um eine Teilzeichenfolge der Zielzeichenfolge handelt.
In diesem Beispiel sehen Sie, wie literale Übereinstimmung funktioniert. Stellen Sie sich eine Situation vor, in der Daten aus dem Website-Traffic erfasst werden und das Feld cs(referrer) den folgenden Wert enthält:
https://www.abc.com/adventurenews/today.html?ad=123AZ45
Um festzustellen, ob der Referrer eine Person darstellt, die auf eine der Anzeigen geklickt hat, müssen Sie sehen, ob der Referrer die Zeichenfolgenanzeige enthält. Sie können einfach die Zeichenfolgenanzeige in Textform verwenden, um die Zielzeichenfolge zu durchsuchen und zu ermitteln, ob eine Anzeige verwendet wurde, um den Traffic zur Site zu leiten. Dies würde zwar mit der Zielzeichenfolge übereinstimmen, würde jedoch an zwei Stellen übereinstimmen und ist daher mehrdeutig und kann zu falsch-positiven Ergebnissen führen.
Die folgende URL enthält die Zeichenfolgenanzeige an zwei verschiedenen Stellen:
https://www.abc.com/ad vertnews/today.html?ad =123AZ45
Wenn Sie also herausfinden möchten, welche Sitzungen als Ergebnis einer bestimmten Werbekampagne gestartet wurden, reicht die einfache Verwendung der Literalanzeige als regulärer Ausdruck eindeutig nicht aus. Wenn Sie das Literal in "ad="ändern, wird diese Uneindeutigkeit beseitigt und der Ausdruck führt dazu, dass nur eine Übereinstimmung erstellt wird. Selbst dies kann jedoch nicht ausreichen, um sicherzustellen, dass der Referrer Teil der Werbekampagne war. Betrachten Sie die folgende verweisende Stelle:
https://www.xyz.com/hello.html?pad=something
Sie haben keine Kontrolle über die URLs, die andere zum Erstellen von Links zur Site verwenden können. Die wörtliche Zuordnung ist zu einfach, um Sitzungen zu finden, die als Ergebnis der Werbekampagne gestartet wurden. Im folgenden Abschnitt wird erläutert, wie Sie Metazeichen für flexiblere und leistungsfähigere Abgleiche verwenden können.
Ein Metazeichen ist ein Sonderzeichen in einem Programm- oder Datenfeld, das Informationen zu anderen Zeichen bereitstellt.
metacharacter | description |
---|---|
(Punkt) | Entspricht einem einzelnen Zeichen, z. B.: re:x.z entspricht "xyz" oder "xxz". |
* (Stern) | Entspricht einem oder mehreren Zeichen, z. B.: re:Z* entspricht "ZZZ". |
? (Platzhalter) | Stimmt mit 0 oder 1 des vorherigen Ausdrucks überein, um eine minimale Übereinstimmung zu erzwingen, z. B.: xy?z entspricht "xy"und "xyz". |
Zusätzliche häufige reguläre Ausdrücke können auch verwendet werden, um komplexere Suchzeichenfolgen zu erstellen.
Listen, Bereiche und ODER
Bei der Literalzuordnung können Sie nach einer einzelnen Zeichenfolge suchen. Mit Klammern, Gedankenstrichen und senkrechten Strichen können Sie jedoch eine Liste der Elemente definieren, nach denen in der Zielzeichenfolge gesucht werden soll.
Für dieses Metazeichen ... | Der Prozessor für reguläre Ausdrücke ... |
---|---|
Eckige Klammern ([ ]) | Ordnen Sie beliebige Zeichen innerhalb der Klammer mit einer einzelnen Zeichenposition zu. [AB] ist beispielsweise eine Anweisung, entweder den Buchstaben A oder B zuzuordnen, und [0123456789] sagt, dass er mit einem beliebigen Zeichen im Bereich von 0 bis 9 übereinstimmt. |
Bindestrich (-) | Übereinstimmung mit einem Zeichenbereich. 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. Beispielsweise entspricht [0-9A-C] den Zeichen 0 bis 9 und A bis C.
Hinweis: Um auf einen Bindestrich (-) als Literal innerhalb der Klammern zu testen, muss er zuerst oder zuletzt kommen. Beispielsweise [-0-9] Tests für - und 0 bis 9. |
Verkettungszeichen (|) | Ordnen Sie eine von zwei Optionen einer angegebenen Zielzeichenfolge zu. Beispielsweise entspricht "b|nat"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 der niedrigere a-Wert nicht im Bereich der oberen A bis Z liegt. |
Negation
Negation ist eine Möglichkeit zu sagen, dass Sie alles mit Ausnahme der angegebenen Zeichen vergleichen möchten. Die Negation Metacharacter, der Zirkumflex oder das Caret (^
), wird als erstes Zeichen in Klammern verwendet, um anzugeben, dass die Übereinstimmung alles andere als die restlichen Zeichen in den Klammern sein soll. Beispiel: Übereinstimmung mit einem beliebigen Zeichen außer einem Semikolon (;
), würden Sie schreiben
[^;
]
Dies würde mit allen Zeichen außer dem Semikolon übereinstimmen.
Positionierung
Um eine Übereinstimmung am Anfang oder Ende einer Zielzeichenfolge zu erzwingen, wird eines von zwei Metazeichen verwendet.
Für dieses Metazeichen … | Der Prozessor für reguläre Ausdrücke … |
---|---|
Circumflex oder Caret (^ ) |
Übereinstimmung mit dem Anfang der Zeichenfolge. Beispiel: ^[Tt] würde mit der Zielzeichenfolge "Der Anfang"übereinstimmen, aber nicht mit "Dies ist der Anfang". |
Dollarzeichen ($ ) |
Übereinstimmung mit dem Ende der Zeichenfolge Beispiel: [Ee] "nd$"würde mit "This is the end"übereinstimmen, würde jedoch nicht mit "The end is a special time"übereinstimmen. |
Wenn der reguläre Ausdruck ^ am Anfang und $ am Ende enthält, muss die gesamte Zielzeichenfolge mit dem regulären Ausdruck übereinstimmen.
Übereinstimmung
Der Zeitraum (.) ist ein spezielles Metazeichen, das mit einem beliebigen Zeichen in der Zielzeichenfolge übereinstimmt. Beispielsweise der reguläre Ausdruck ^…$
entspricht allen Zielzeichenfolgen, die genau drei Zeichen lang sind. Der reguläre Ausdruck "…"stimmt mit jeder Zielzeichenfolge überein, die mindestens drei Zeichen enthält.
Wiederholte Muster
Mit Iterations-Metazeichen können Sie ein Muster mehrmals abgleichen.
Für dieses Metazeichen ... | Der Prozessor für reguläre Ausdrücke ... |
---|---|
Fragezeichen (?) | Ordnen Sie keine Instanzen oder eine Instanz des Zeichens unmittelbar vor dem Metazeichen (?) zu. Beispielsweise entspricht das Muster rea?d rot und gelesen. |
Sternchen (*) | Übereinstimmung mit null oder mehr Vorkommen des Zeichens unmittelbar vor dem Metazeichen (*). Das Muster [0-9]* beispielsweise entspricht einer beliebigen Anzahl von Zeichen 0 bis 9 (beliebige Ganzzahl). |
Plus (+) | Übereinstimmung mit einem oder mehreren Vorkommen des vorangehenden Zeichens oder Bereichs. Beispielsweise würde das Muster Dre+ mit drei übereinstimmen, aber nicht mit durchgängig. |
{n} | Passen Sie das wiederkehrende Zeichen oder den Bereich genau n Mal an. Das folgende Muster entspricht den Telefonnummern der USA: Obwohl dies kein optimales Muster ist, bestimmt es, ob die Zielzeichenfolge im richtigen Format vorliegt. |
{n,m} | Übereinstimmung mit dem vorangehenden Zeichen mindestens n Mal und höchstens m Mal Beispielsweise würde "fo{1,2}d"mit Lebensmitteln und Lebensmitteln übereinstimmen, jedoch nicht mit Lebensmitteln. |
Die Musterzuordnung ist nur ein Teil der Leistungsfähigkeit regulärer Ausdrücke. Reguläre Ausdrücke bieten auch einen Mechanismus zum Extrahieren von Schlüsselteilen einer Zielzeichenfolge. Dies geschieht mithilfe der linken und rechten Klammern. Diese Extraktionen werden in der Regel als Eingabe in einen anderen Prozess verwendet und durch die Verwendung von %position%, wobei position eine Ganzzahl ist, die darauf verweist, mit welcher Anzahl von Klammern übereinstimmt.
Beachten Sie die folgenden Beispiele für die Musterextraktion:
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 |
Lesson([A-Z]) | Lektion a | Keine Übereinstimmung, da niedrigere a nicht im Bereich der oberen A bis Z liegt |