-
2019.04.15 -
2022.06.17
正規表現を使用したキーワード6個以上の文字列検索方法
サポート情報番号 | 000181 |
対象バージョン | BOM 8.0, BOM 7.0 (全 SR), BOM 6.0 (全 SR), BOM 5.0 (全 SR) |
BOMの「イベントログ監視」および「テキストログ監視」では、メッセージの検索や除外のために5件までのキーワードを指定できます。そしてこのキーワードを6件以上指定したい場合は、正規表現を使用することができます。
[詳細]
キーワードを6個以上利用したい場合は、正規表現を使用することで対応できます。
以下は、一般的な監視で利用できる正規表現の構文です。
※文字の色は説明のためにつけているものです。
1.論理積(AND)
論理積は、指定した複数のキーワードが、全て見つかった時に検知します。
キーワードとして「文字列1」、「文字列2」、「文字列3」を指定する場合、以下のように記述します。
^((?=.*文字列1)(?=.*文字列2)(?=.*文字列3)).*$
その際、以下のテキストは検知されます。
テキスト内に文字列1と文字列2と文字列3が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列1と文字列2と文字列4が記載されたメッセージ
なお、「(?=.*文字列)」を増やすことで、より多くの文字列を検出対象にすることができます。
^((?=.*文字列1)(?=.*文字列2)(?=.*文字列3)(?=.*文字列4)).*$
2.論理和(OR)
論理和は、指定した複数の文字列について、そのいずれかが見つかった時に検知します。
キーワードとして「文字列1」、「文字列2」、「文字列3」を指定する場合、以下のように記述します。
^(((?=.*文字列1)|(?=.*文字列2)|(?=.*文字列3))).*$
その際、以下のテキストは検知されます。
テキスト内に文字列1と文字列2と文字列3が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列4と文字列5と文字列6が記載されたメッセージ
なお、「|(?=.*文字列)」を増やすことで、より多くの文字列を検出対象にすることができます。
^(((?=.*文字列1)|(?=.*文字列2)|(?=.*文字列3)|(?=.*文字列4))).*$
3.否定論理積(NAND)
否定論理積は、指定した複数の文字列について、全てが見つかった時には検知しません。(指定した文字列のうち、いずれかを含まなければ検知します)
キーワードとして「文字列1」、「文字列2」、「文字列3」を指定する場合、以下のように記述します。
^(((?!.*文字列1)|(?!.*文字列2)|(?!.*文字列3))).*$
その際、以下のテキストは検知されます。
テキスト内に文字列1と文字列2と文字列4が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列1と文字列2と文字列3が記載されたメッセージ
なお、「|(?!.*文字列)」を増やすことで、よりメッセージを絞り込むことができます。
^(((?!.*文字列1)|(?!.*文字列2)|(?!.*文字列3)|(?!.*文字列4))).*$
4.否定論理和(NOR)
否定論理和は、指定した複数の文字列について、そのいずれかが見つかった時には検知しません。(指定した文字列を、全て含まなければ検知します)
キーワードとして「文字列1」、「文字列2」、「文字列3」を指定する場合、以下のように記述します。
^((?!.*文字列1)(?!.*文字列2)(?!.*文字列3)).*$
その際、以下のテキストは検知されます。
テキスト内に文字列4と文字列5と文字列6が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列1と文字列3と文字列4が記載されたメッセージ
なお、「(?!.*文字列)」を増やすことで、よりメッセージを絞り込むことができます。
^((?!.*文字列1)(?!.*文字列2)(?!.*文字列3)(?!.*文字列4)).*$
5.組み合わせ
それぞれの論理構文を組み合わせて使用することができます。
共通項(「^(」及び「).*$」)で囲い、さらに個別の特出項(論理和及び否定論理積の「(」と「)」)があればそれを囲ったうえで、個別の指定を行います。
以下に、組み合わせの例を挙げます。
論理和と否定論理和
文字列1、文字列2のいずれかを検知するが、文字列4、文字列5のいずれかが含まれる場合は除きたいという場合、以下のように記述します。
^(((?=.*文字列1)|(?=.*文字列2))(?!.*文字列4)(?!.*文字列5)).*$
その際、以下のテキストは検知されます。
テキスト内に文字列1と文字列3が記載されたメッセージ
テキスト内に文字列2と文字列3が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列2と文字列5が記載されたメッセージ
テキスト内に文字列6と文字列7が記載されたメッセージ
論理積と論理和
文字列1、文字列2の両方を含み、かつ文字列4、文字列5のいずれかを含む場合に検知したいという場合、以下のように記述します。
^((?=.*文字列1)(?=.*文字列2)((?=.*文字列4)|(?=.*文字列5))).*$
その際、以下のテキストは検知されます。
テキスト内に文字列1と文字列2と文字列4が記載されたメッセージ
テキスト内に文字列1と文字列2と文字列5が記載されたメッセージ
以下のテキストは検知されません。
テキスト内に文字列1と文字列2と文字列3が記載されたメッセージ
テキスト内に文字列1と文字列4と文字列5が記載されたメッセージ
[注意事項]
本技術情報を活用するには、正規表現に関する基礎知識が必要となります。
また、正規表現の具体的な記述方法はサポート対象外です。本技術情報に関する個別のお問い合わせはお受けできません。
[更新履歴]
2010年 7月21日 公開
2019年 4月15日 BOM 7.0 を対象に加えて更新
2022年 6月17日 BOM 8.0 を対象に加えて更新