regex

Mit dem Befehl regex können Sie Daten nach einem angegebenen regulären Ausdruck filtern.

Syntax

Hinweis

Befehle zur Zeichenfolgenverarbeitung wie regex sind ressourcenintensiv. Daher wird die Ausführung des Befehls regex für eine große Anzahl von Logdatensätzen oder für große Feldwerte nicht empfohlen. Extrahieren Sie diese Werte stattdessen mit den erweiterten Felddefinitionen (EFD) oder Labels in Ihrer Logquelle.

Informationen zum Schreiben performanter regulärer Ausdrucksabfragen finden Sie in der RE2J-Syntax unter Java Implementation of RE2.

regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]

Parameter

In der folgenden Tabelle sind die in diesem Befehl verwendeten Parameter sowie deren Beschreibungen aufgeführt.

Parameter Beschreibung

field

Geben Sie das zu analysierende Feld an.

regular expression

Geben Sie den regulären Ausdruck an.

Betrachten Sie das folgende Set aus Beispieldatensätzen für die Namen von Entitys, um einige Beispielabfragen mit regulären Ausdrücken auszuführen:

slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Filteranforderung Beispielbefehl mit regulärem Ausdruck Suchergebnis
Zum Darstellen eines einzelnen Zeichens mit . * | regex 'entity' = 'slc07ptt:845.'|distinct entity slc07ptt:8452
Zum Erkennen von einer oder mehr Übereinstimmungen mit dem Zeichen + * | regex 'entity' = 'slc07ptt.+'|distinct entity slc07ptt:8452
Zum Erkennen von 0 oder mehr Übereinstimmungen mit dem Zeichen * * | regex 'entity' = 'slc07ptt.*'|distinct entity slc07ptt

slc07ptt:8452

Zum Erkennen von 0 oder einer Übereinstimmung mit dem Platzhalterzeichen ? * | regex 'entity' = 'slc07ptt?'|distinct entity slc07ptt
Zum Angeben der minimalen und maximalen Ergebnisse aus der Abfrage * | regex 'entity' = 'slc07p{1,2}'|distinct entity slc07ptt

slc07ptt:8452

Zum Angeben alternativer Optionen für ein bestimmtes Zeichen * | regex 'entity' = 'slc07pt(T|t)'|distinct entity slc07ptt
Zum Angeben einer Ergänzung mit dem Zeichen ~ * | regex 'entity' = 'slc~c'|distinct entity slc07cuc
Zum Angeben eines numerischen Bereichs mit der Intervalloption <> * | regex 'entity' = 's.*<1-43>.*'|distinct entity stuyb43

stuyb43:1831

Zum Verknüpfen zweier Muster, sodass beide übereinstimmen, mit der Schnittmengenoption & * | regex 'entity' = '.*43&.*tu.'|distinct entity stuyb43

stuyb43:1831

Zum Abgleichen einer beliebigen vollständigen Zeichenfolge mit der Option @ * | regex 'entity' = '@'|distinct entity slc07cuc

slc07ptt

slc07ptt:8452

stuyb43

stuyb43:1831

Zum Suchen von Datensätzen durch Herausfiltern der spezifischen Optionen mit dem Zeichen für "Ungleich" != * | regex 'entity' = 'slc07.+'|distinct entity stuyb43

stuyb43:1831

Zum Suchen nach Datensätzen, die die Zeichen 2 und 5 enthalten, geben Sie den booleschen Ausdruck IN an * | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity slc07ptt:8452
Zum Suchen nach Datensätzen, die die Zeichen 1 und 2 nicht enthalten, geben Sie den booleschen Ausdruck NOT IN an * | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity slc07cuc

slc07ptt

stuyb43

Zum Angeben mehrerer Abfragen mit regulären Ausdrücken * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity slc07cuc

slc07ptt

stuyb43

Zum Suchen von Datensätzen durch Angabe der Zeichenklasse, die das Vorhandensein der Zeichen von1 bis 6 verneint, mit der Option ^ * | regex 'entity' = 'slc0[^1-6].*' |distinct entity slc07cuc

slc07ptt

Zum Suchen von Datensätzen durch Angabe der Zeichenklasse für die Präsenz der Zeichen von 3 bis 8 * | regex 'entity' = 'slc0[3-8].*' |distinct entity slc07cuc

slc07ptt

Zum Suchen von Datensätzen durch Angabe der Zeichenklasse für die Präsenz des Zeichens 1 oder 2 * | regex 'entity' = 's.*[12].*'|distinct entity slc07ptt:8452

stuyb43:1831