regex
regex
コマンドを使用して、指定した正規表現に従ってデータをフィルタします。
構文
ノート
regex
などの文字列処理コマンドはリソースを大量に消費します。このため、多数のログ・レコードに対してregex
コマンドを実行するか、大きいフィールド値を指定することはお薦めしません。かわりに、ログ・ソースの拡張フィールド定義(EFD)またはラベルを使用してこれらの値を抽出します。
パフォーマンスに優れた正規表現問合せを記述するには、RE2J構文(Java Implementation of RE2)を参照してください。
regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]
パラメータ
次の表に、このコマンドで使用されるパラメータとその説明を示します。
パラメータ | 説明 |
---|---|
|
分析するフィールドを指定します。 |
|
正規表現を指定します。 |
いくつかの正規表現問合せの例を実行するために、エンティティの名前を表している次のサンプル・レコードのセットを考えます:
slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
フィルタ要件 | regexコマンドの例 | 検索結果 |
---|---|---|
. を使用して1個の文字を表すには
|
* | regex 'entity' = 'slc07ptt:845.'|distinct entity |
slc07ptt:8452 |
文字+ を使用して1個以上の一致を検出するには |
* | regex 'entity' = 'slc07ptt.+'|distinct entity |
slc07ptt:8452 |
文字* を使用して0個以上の一致を検出するには |
* | regex 'entity' = 'slc07ptt.*'|distinct entity |
slc07ptt
|
ワイルドカード文字? を使用して0個または1個の一致を検出するには |
* | regex 'entity' = 'slc07ptt?'|distinct entity |
slc07ptt |
問合せからの最小および最大の結果を指定するには | * | regex 'entity' = 'slc07p{1,2}'|distinct entity |
slc07ptt
|
特定の文字の代替オプションを指定するには | * | regex 'entity' = 'slc07pt(T|t)'|distinct entity |
slc07ptt |
~ 文字を使用して補完を指定するには
|
* | regex 'entity' = 'slc~c'|distinct entity |
slc07cuc |
間隔オプション<> を使用して数値範囲を指定するには |
* | regex 'entity' = 's.*<1-43>.*'|distinct entity |
stuyb43
|
2つのパターンが両方とも一致するように結合するには、共通部分オプション& を使用します |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
@ オプションを使用して文字列全体を一致させるには
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
不等価文字!= を使用し、特定のオプションを除外してレコードを検索するには |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
文字2 および5 を含むレコードを検索するには、ブール式IN を指定します |
* | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity |
slc07ptt:8452 |
文字1 および2 を含まないレコードを検索するには、ブール式NOT IN を指定します |
* | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity |
slc07cuc
|
複数の正規表現問合せを指定するには | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
オプション^ を使用し、1 から6 までの文字の存在を否定する文字クラスを指定してレコードを検索するには |
* | regex 'entity' = 'slc0[^1-6].*' |distinct entity |
slc07cuc
|
3 から8 までの文字の存在に対応する文字クラスを指定してレコードを検索するには |
* | regex 'entity' = 'slc0[3-8].*' |distinct entity |
slc07cuc
|
文字1 または2 の存在に対応する文字クラスを指定してレコードを検索するには |
* | regex 'entity' = 's.*[12].*'|distinct entity |
slc07ptt:8452
|