ディレクトリ名に正規表現を使用する場合は、特別な考慮が必要です。このセクションでは、これらの制限を説明し、例をいくつか示します。
ディレクトリ名として正規表現を使用する場合、次の制限が適用されます。
ディレクトリルート、ドライブ名、およびディレクトリ区切り文字は、それだけで表現します。つまり、これらの要素のいずれも正規表現として表現しないでください。正規表現として出現することを想定されるのはフォルダ名のみです。
正規表現は、ディレクトリ区切り文字をまたがることはできません。2 つのディレクトリ区切り文字間で正規表現を使用する場合は、完全な 1 つの表現にします。
ディレクトリ区切り文字が正規表現の特殊文字 (” * [ ] ( ) | + { } : . ^ $ ? \") と競合する場合は、ディレクトリパターン内ですべてのディレクトリ区切り文字をエスケープします。バックスラッシュ (\) は、正規表現で他の特殊文字をエスケープするために使用される特殊文字です。Windows プラットフォームの場合、ディレクトリ区切り文字はバックスラッシュであるため、\\ としてエスケープします。
Windows 汎用命名規則 (UNC) の場合、ディレクトリルート (コンピュータ名および共有ルートフォルダ名を含む) はそれだけで表現します。つまり、コンピュータ名および共有ルートフォルダは正規表現として表現しないでください。
ディレクトリ区切り文字はプラットフォームに依存します。次に例を示します。
Windows プラットフォームの場合、ディレクトリパスは次のパターンに従います。
drive:\\regexp1\\regexp2\\regexp3 ... |
Windows UNC 指定の場合、ディレクトリパスは次のパターンに従います。
\\\\machineName\\shared_folder\\regexp1\\regexp2\\regexp3 ... |
マウントされたディレクトリを含む UNIX プラットフォームの場合、ディレクトリパスは次のパターンに従います。
/regexp1/regexp2/regexp3 ... |
Windows:
c:\\$\\^client\\collab\D\\ ... |
表現 \D は、数字以外の任意の文字を示します。
d:\\a.b\\c.d\\e.f\\g.h\\[0-9]\\ ... |
シンボル「.」は任意の文字を意味します。
Windows の UNC 指定:
\\\\My_Machine\\public\\xyz$\\^abc |
Windows の UNC 指定のプレフィックスは \\ です。エスケープすると、\\\\ になります。
UNIX:
/abc\d/def/ghi/ ... |
表現 \d は、任意の数字を意味します。
/^PRE[0-9]{5}\.dat$/ ... |
この表現は、PRE で始まり、5 桁の数字が続いて、.dat 拡張子を使用することを意味します。シンボル \. は、任意の文字としてではなく、実際の文字 (ピリオド) として解釈することを意味します。したがって、PRE12345.dat は一致しますが、PRE123456dat は一致しません。