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

スキャンの対象から除外されるオブジェクトを Scanner の設定内で指定する際、設定ファイル内およびび Dr.Web 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 オプションは無視されます。