サポートされている正規表現 (regex) 構文 - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サポートされている正規表現 (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%( を一致とみなします。