regex
Mit dem Befehl regex
können Sie Daten nach einem angegebenen regulären Ausdruck filtern.
Syntax
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 |
---|---|
|
Geben Sie das zu analysierende Feld an. |
|
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
|
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
|
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
|
Zum Verknüpfen zweier Muster, sodass beide übereinstimmen, mit der Schnittmengenoption & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Zum Abgleichen einer beliebigen vollständigen Zeichenfolge mit der Option @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Zum Suchen von Datensätzen durch Herausfiltern der spezifischen Optionen mit dem Zeichen für "Ungleich" != |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
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
|
Zum Angeben mehrerer Abfragen mit regulären Ausdrücken | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
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
|
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
|
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
|