J1. PCRE正規表現で使用されるオプション

スキャンの対象から除外されるオブジェクトをScannerの設定内で指定する際、設定ファイル内およびDr.Web Security Control Center内で正規表現が使用されます。

正規表現は次のように表記されます。

qr{EXP}options

EXPの部分は表現そのもので、optionsは一連のオプション(一連の文字列)、qr{}はリテラルなメタ文字です。全体の構文は次のようになります。

qr{pagefile\.sys}i - Windows NTスワップファイル

次はオプションと正規表現の説明です。詳細については、http://www.pcre.org/pcre.txtを参照してください。

オプションの'a'PCRE_ANCHOREDと同じです。

このオプションが設定されている場合、パターンは強制的に固定(anchored)となり、検索される文字列(「対象の文字列」)の先頭でのみマッチするように制限されます。パターン自体の中に適切な指定を行うことでも同じ結果を得ることができます。

オプションの'i'PCRE_CASELESSと同じです。

このオプションが設定されている場合、パターン内の文字は大文字・小文字のどちらにもマッチします。このオプションは(?i)オプションの設定によってパターン内で変更できます。

オプション'x'PCRE_EXTENDEDと同じです。

このオプションが設定されている場合、パターン内の空白文字は、エスケープされているか文字クラスの中にある場合を除いて完全に無視されます。空白文字はVT文字(コード11)を含みません。さらに、文字クラス外のエスケープされていない#と改行文字の間にある文字は無視されます。このオプションは(?x)オプションを設定することによって、パターン内で変更することが可能です。このオプションによって複雑なパターンの内部にコメントを記述することが可能になります。ただし、適用できるのはデータ文字のみになりますので注意してください。空白文字をパターンの特殊文字の並びの中(条件付きサブパターン内(?(の内部など)に置くことはできません。

オプション'm'PCRE_MULTILINEと同じです。

デフォルトでは、PCREは対象の文字列を1行の文字の並びとして扱います(実際は改行文字を含んでいても)。「行頭」を表すメタ文字"^"は文字列の先頭でのみマッチし、「行末」を表すメタ文字"$"は文字列の末尾、または最後の改行の前でのみマッチします(PCRE_DOLLAR_ENDONLYがセットされていない限り)。

PCRE_MULTILINEが設定されている場合、「行頭」および「行末」メタ文字は、文字列の最初と最後に加えて、文字列内でそれらの直前直後にある改行文字にもマッチします。このオプションは(?m)オプション設定によってパターン内で変更できます。対象の文字列に"\n"文字がない場合、またはパターン内に^$がない場合にはこのオプションは設定しても意味がありません。

オプション'u'PCRE_UNGREEDYと同じです。

このオプションは量指定子の「貪欲さ」を反転させます。量指定子はデフォルトでは貪欲ではなく、後ろに"?"を付けて初めて貪欲になるようになります。パターン内の(?U)オプションでも同じ結果が得られます。

オプション'd' PCRE_DOTALLと同じです。

このオプションが設定されている場合、パターン内のドットメタ文字は改行を含む全ての文字にマッチします。設定されていない場合は改行にはマッチしません。このオプションは(?s)オプション設定によってパターン内で変更できます。[^a]のような否定の文字クラスは、このオプションの設定に関係なく常に改行文字にマッチします。

オプション'e'PCRE_DOLLAR_ENDONLYと同じです。

このオプションが設定されている場合、パターン内のドルメタ文字は対象文字列の末尾にのみマッチします。このオプションが設定されていない場合には、ドルメタ文字は文字列の最後にある改行の直前(他の改行文字の前にはマッチしません)にもマッチします。PCRE_MULTILINEオプションが設定されている場合PCRE_DOLLAR_ENDONLYオプションは無視されます。