質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

450閲覧

CloudWatchメトリクスのフィルターパターンで正規表現を使いたい

jump11082468

総合スコア1

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2024/10/16 01:32

編集2024/10/16 01:47

実現したいこと

CloudWatchメトリクスのフィルターパターンで正規表現を用いた設定を行いたいと思っております。

表現したい文字列は以下のような形です。
例: Test:2024-10-16 10:15:48,22 => 50000(msec)

Test:、=>、(msec)については固定の文字列の想定をしております。
また、msecの値を40秒〜99.999秒の範囲を表現したいと思っております。

試したこと

正規表現を扱うには「%」を使用する必要があると公式ドキュメントに記載があったため、
"Test:%.*%=> %.*[4-9]....%(msec)"
等の設定を試したのですが、上手くいきませんでした。

上記について、正規表現を用いて表現する方法をご教授頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

記載の正規表現にはぱっと見ていくつか問題があります。

  • *が全角
    これはこちらに記述する際の誤りかもしれませんが、これだと正規表現として認識してくれないと思います
  • .*[4-9]...が40000-90000を表していない
    • これだと<任意の長さの文字列)> + <4-9のうちいずれかの数字> + <任意の文字4文字>となります。そのため想定外のマッチが発生する可能性があります。
    • 表示形式を見る限り、5桁であることは確定の想定で書いていますが、そうでない場合はその点も考慮が必要です。

msecの部分が40000〜90000であり、これが5桁で固定であるという前提なら
([4-8][0-9]{4}|90000)
で良いと思います。
また、日付や時刻の部分も正規表現にできそうですね。そちらは一桁の場合十の位をゼロ埋めするのかそうでないのかによって書き方が変わると思うのででご注意ください。

都度設定して確かめるのは面倒なので、作成した正規表現がサンプルの文字列にマッチするかを先に調べてから設定することをお勧めします。
十分なサンプルを用意してマッチすることを確認しましょう。
ちなみに余談ですが、正規表現を生成するのもサンプルを生成するのも生成AIの力を借りると非常に楽になるので、機密情報を入れないように留意しながら活用することをお勧めします。

投稿2024/10/16 06:17

yu_1985

総合スコア7633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jump11082468

2024/10/16 11:44

ご回答頂きありがとうございます。 ご指摘の内容や生成AIを活用することで解決出来ました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問