以下に、正規表現として使用できる表記法を示します。
正規表現 | 意味 |
---|---|
文字 | 文字を含む文字列を表します。 |
. | 任意の1文字を表します。(改行を含む) |
* | 直前の1文字(正規表現を含む)の0回以上の繰り返しを表します。(注) |
^ | 行の先頭であることを表します。 |
$ | 行の末尾であることを表します。 |
[文字列] | 文字列の中の任意の1文字を表します。 |
[^文字列] | 文字列に使われている文字以外の任意の1文字を表します。 |
[文字a-文字b] | 文字aから文字bまでの任意の1文字を表します。 |
Windows版では、直前2文字(全角文字の場合は1文字)の0回以上の繰り返しを表します。正規表現「.」を組み合わせて直前1文字の0回以上の繰り返しの定義を行う場合は、以下の様に記載します。
「.*」
以下の表記方法は使用できません。
正規表現 | 意味(OS、ソフトウェアにより異なります) |
---|---|
? | 直前の1文字(正規表現を含む)の0回以上1回以下の繰り返しを表します。 |
| | 前後のどちらかに一致することを表します。 |
+ | 直前の1文字の1回以上の繰り返しを表します。 |
\ | \の後に続く文字により特定の文字を表します。 例)\s は空白文字、\nは改行文字など。 |
(文字列) | ()内の文字列を1つのグループとします。 |
{数値} | {}内に指定した数値の繰り返しを表します。 |
上記の文字(正規表現文字、および、正規表現として使用できない文字)を、一般の文字として使用する場合は、文字の前に 「\」 を付加してください。
例)
正規表現文字として使用できる文字
「\.」、 「\*」、 「\^」 など
例)
正規表現として使用できない文字
「\?」、 「\|」、 「\\」 など
文字列、文字には、全角文字を用いることはできません。
例)
「印刷」または「印字」と一致させるために、「印[刷字]」と記述しても、正しく動作しません。
「[」と「]」で囲まれる範囲では、「$」は、正規表現文字ではなく、「$」という文字自身を示します。
ポイント
先頭に「.*」を設定した場合と省略した場合とでは、正規表現の意味は同じです。例えば、「.*error occurred」と「error occurred」では、どちらも「error occurred」を含む文字列という意味になります。このような場合は、一般的に正規表現文字を指定しないほうが文字列の比較の処理が速くなりますので、正規表現文字を使用しないでください。
正規表現例
正規表現例 | 意味 |
---|---|
abc | abcを含む文字列を表します。aabc、abcdなどと一致します。 |
abc.ef | abcとefの間に任意の1文字が入った文字列を表します。abcdef、 abc5ef などと一致します。 |
a*b | a*は、aという文字の0回以上の繰り返しを表します。b、ab、aab、aaab などと一致します。 |
.* | 任意の1文字を表す「.」と、直前の1文字の0回以上の繰り返しを表す「*」の組み合わせにより、任意の文字列を表します。 |
^abc | 行の先頭が abc であることを表します。abcdef、 abcxyz などと一致します。 |
xyz$ | 行の末尾が xyz であることを表します。123xyz、 ABCxyz などと一致します。 |
3001[IWEH] | [IWEH]は、I、W、E、H のどれか1文字を表します。3001I、3001W、3001E、3001H と一致します。 |
3500[^IN] | [^IN]は、I、N 以外の1文字を表します。3500a、3500n などと一致し、3500I、3500Nと一致しません。 |
[0-9] TIMES | [0-9]は、0から9までの任意の1文字を表します。0 TIMES、2 TIMES などと一致します。 |
設定例
以下に、イベント監視の条件定義での設定例を示します。
例1)
エラー番号の末尾が A のメッセージを監視する という場合
監視する文字列 「error no 1000A : detail is ...」
監視する文字列 「error no 1002A : detail is ...」
監視しない文字列 「error no 1234E : detail is ...」
「error no」の後に4桁の数字があり、その後が A と定義する
定義例 : 「error no [0-9][0-9][0-9][0-9]A : detail is ...」
悪い定義例 : 「error no *A」
解説
「*」 は、直前の1文字の0回以上の繰り返しを意味します。任意の文字列という意味ではありません。エラー番号部分を任意の文字列と表記したい場合は、「error no .*A」と定義してください。
例2)
「error occurred」という文字列が含まれるメッセージを監視する という場合
監視する文字列 「file control error occurred」
監視する文字列 「system error occurred」
監視しない文字列 「file control succeeded」
任意の文字列の後に 「error occurred」がある と定義
定義例 : 「.* error occurred」
「error occurred」 で終わる文字列 と定義
定義例 : 「error occurred$」
例3)
「Check system」という文字列で始まるメッセージを監視する という場合
監視する文字列 「Check system -> Server01.」
監視する文字列 「Check system -> Server02.」
監視しない文字列 「Check database -> Server02.」
「Check system」で始まる文字列 と定義
定義例 : 「^Check system」