翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サポートされている正規表現 (regex) 構文
テキストの完全一致を超える柔軟なパターンマッチングが必要な場合は、正規表現を使用します。正規表現は以下の場合に特に役立ちます。
可変形式: IP アドレス、タイムスタンプ、または IDsを異なる形式で一致させる
部分一致: テキスト内の特定のパターンを含むログエントリを検索する
複雑な条件: 値の範囲、オプションの文字、または代替スペルの一致
例えば、 を使用して任意の IP アドレス形式%\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}%を照合するか、ログで「Error」/「error」と「Fail」/「fail」の両方%[Ee]rror|[Ff]ail%をキャッチします。
% (regex パターン前後のパーセント記号)で囲まれた regex パターンを使用し、ログイベントの語句を一致とみなすことができます。次の例は、AUTHORIZED キーワードを含むすべてのログイベントを返すフィルターパターンを示しています。
%AUTHORIZED%
このフィルターパターンは、次のようなログイベントメッセージを返します。
[ERROR 401] UNAUTHORIZED REQUEST[SUCCESS 200] AUTHORIZED REQUEST
次のセクションを展開して、CloudWatch Logs フィルターパターンでサポートされている特定の正規表現演算子と構文ルールの詳細を表示します。
regex を使用してログデータを検索とフィルタリングする際は、その式を % で囲む必要があります。
regex を使ったフィルターパターンには、次のものしか含めることができません
-
英数字 - 英数字とは、文字 (A〜Z または a〜z) または数字 (0~9) を指します。
-
サポートされている記号文字 – '
:'、'_'、'#'、'='、''、'@'、''/、';'、''、,''、-'' が含まれます。たとえば、「!」はサポートされていないため、%something!%は拒否されます。 -
サポートされている演算子 - これには、「
^」、「$」、「?」、「[」、「]」、「{」、「}」、「|」、「\」、「*」、「+」、「.」が含まれます。
( と ) 演算子はサポートされていません。括弧を使用してサブパターンを定義することはできません。
マルチバイト文字はサポートされていません。
注記
クォータ
メトリックスフィルターまたはサブスクリプションフィルターを作成するとき、ロググループごとに regex を含むフィルターパターンが最大 5 つあります。
メトリックスフィルターとサブスクリプションフィルターの区切りまたは JSON フィルターパターンを作成するとき、またはログイベントまたはライブテールをフィルタリングするとき、フィルターパターンごとに 2 つの regex の制限があります。
[サポートされている演算子の使い方]
-
^:文字列の先頭の一致。たとえば、%^[hc]at%は「hat」と「cat」を一致とみなしますが、文字列の先頭でのみ適用されます。 -
$: 文字列の末尾の一致。たとえば、%[hc]at$%は「hat」と「cat」を一致とみなしますが、文字列の末尾でのみ適用されます。 -
?: 前述の用語の出現を 0 回または 1 回一致させます。たとえば、%colou?r%は「color」と「colour」を一致とみなします。 -
[]: 文字クラスを定義します。括弧内の文字リストまたは文字範囲との一致。たとえば、%[abc]%は「a」、「b」、「c」を一致とみなします。%[a-z]%は「a」から「z」までのすべての小文字を一致とみなします。%[abcx-z]%は「a」、「b」、「c」、「x」、「y」、「z」を一致とみなします。 -
{m, n}: m 以上の前の語句と一致し、n 回を超えることはありません。たとえば、%a{3,5}%は「aaa」、「aaaa」、「aaaaa」 のみを一致とみなします。注記
最小値または最大値を定義しない場合、m と n のいずれかを省略できます。
-
|: 垂直バーのどちら側の語句と一致するブール値「Or」。例:-
%gra|ey%は「gray」または「grey」と一致できます -
%^starting|^initializing|^shutting down%は「開始中...」、「初期化中...」、または「シャットダウン中」と一致できますが、「スキッピング初期化中...」とは一致しません。 -
%abcc|ab[^c]$は「abcc ...」と「aba ...」に一致できますが、「aac ...」には一致しません。
-
-
\: 演算子の特殊な意味ではなく、文字通りの意味を使用できるようにするエスケープ文字。たとえば、「[a]」、「[b]」、「[7]」、「[@]」、「[]]」、「[ ]」などのように、括弧がエスケープされるため、%\[.\]%は「[」と「]」で囲まれたすべての 1 文字を一致とみなします。注記
%10\.10\.0\.1%は、IP アドレス 10.10.0.1 を一致とみなす regex を作成する正しい方法です。 -
*: 前の語句のインスタンスが 0 以上一致。たとえば、%ab*c%は「ac」、「abc」、「abbbc」と一致できます。%ab[0-9]*%は「ab」、「ab0」、「ab129」を一致とみなします。 -
+: 前の語句のインスタンスが 1 以上一致。たとえば、%ab+c%は「abc」、「abbc」、「abbbc」を一致とみなしますが、「ac」を一致とみなしません。 -
.: すべての 1 文字と一致します。たとえば、「hat」、「cat」、「bat」、「4at」、「#at」、「 at」 (先頭にスペース)を含め、%.at%は「at」で終わるすべての 3 文字の文字列を一致とみなします。注記
IP アドレスと一致させる regex を作成するとき、
.演算子からエスケープすることが重要です。たとえば、%10.10.0.1%は「10010,051」を一致とみなしますが、これは表現の本来の用途とは異なる場合があります。 -
\d、\D: 数字または数字以外の文字を一致とみなします。たとえば、%\d%は%[0-9]%と同等であり、%\D%は%[^0-9]%と同等です。注記
大文字の演算子は、対応する小文字の逆を表します。
-
\s、\S: 空白文字または非空白文字を一致とみなします。注記
大文字の演算子は、対応する小文字の逆を表します。空白文字にはタブ (
\t)、スペース ()、改行 (\n)文字が含まれます。 -
\w、\W: 英数字または非英数字と一致します。たとえば、%\w%は%[a-zA-Z_0-9]%と同等であり、%\W%は%[^a-zA-Z_0-9]%と同等です。注記
大文字の演算子は、対応する小文字の逆を表します。
-
\xhh: 2 桁の 16 進文字の ASCII マッピングと一致します。\xは、次の文字が ASCII の 16 進値を表すことを示すエスケープ シーケンスです。hhは、ASCII 表の文字を指す 2 つの 16 進数字(0 ~ 9 と A 〜 F)を指定します。注記
\xhhを使用してフィルターパターンでサポートされていない記号文字を一致とみなすことができます。たとえば、%\x3A%は:を一致とみなし、%\x28%は(を一致とみなします。