正規表現を使用すると、ファイル名およびディレクトリ名に対するパターンを指定できます。正規表現は「取得」処理 (受信、つまり転送元) に使用するのに対し、名前パターンは「出力」処理 (送信、つまり転送先) に使用します。
BatchFTP、Batch FTPOverSSL、BatchSFTP、BatchLocalFile、および BatchInbound の各 OTD では、正規表現を使用できます。たとえば、特定の拡張子を持つすべてのファイルにアクセスできます。
正規表現は次のように機能します。
ディレクトリ名またはファイル名は、次のいずれかとして定義できます。
実際のファイル名 (常に使用可)
名前パターン (「出力」処理のすべての名前、および取得処理の転送前/転送後名)
正規表現 (「取得」処理のターゲット名)
正規表現と名前パターンの違いは、次のとおりです。
正規表現は、FTP サーバーまたはローカルファイルシステム上の既存の名前と照合するために使用されます。
名前パターンは、パターン内の特殊文字を置き換えることで名前を作成するために使用されます。
特殊文字を使用した名前パターンについては、「バッチアダプタでの名前パターンの使用法」を参照してください。
たとえば、.*\.dat$ という拡張子を指定できます。すると、get() メソッドが呼び出されるごとに、アダプタは、.dat 拡張子を持つ次のファイルを取得します。次に、アダプタは、各ファイルを OTD の Payload ノードに取り出し、現在アクセスしているファイルの名前で作業ファイル名の属性を更新します。
別の例としては、ファイル照合パターン data\.00[1-9] を使用して、ファイル data.001、data.002 などを取得できます。どの場合も「.」はエスケープされます。これは、正規表現の構文と一貫しています。また、xyzdata.001 および xyz.data.001 に一致します。これは、「data」の前が一切除外されないためです。「data」を照合パターンの開始とするためには、^data\.00[1-9] または \A data\.00[1-9] を使用します。
正規表現の使用は拡張機能であり、慎重に実装してください。不適切な形式の正規表現は、想定外のデータをもたらしたり、データを損失することさえあります。正規表現を使用する前に、その構文と構築について明確に理解してください。正規表現の設定は、本稼働環境に移行する前に、十分テストすることをお勧めします。
FTP またはローカルファイル名の正規表現は、さまざまな方法で入力できます。たとえば、*\.dat$ や ^xyz.*\.dat$ などです。最初の例は、拡張子 .dat を持つすべてのファイルを示します。2 番目の例は、拡張子が .dat で名前が xyz で始まるすべてのファイル名を示します。
もう 1 つの例として、file[0-9]\.dat も可能です。この表現は、file0.dat、file1.dat、file2.dat などから file9.dat までを指定します。また、これは xyz.file0.dat、xyz.file1.dat などに一致します。このタイプの表現は、「file」の前の一切を除外しません。「file」の前のすべての文字を除外するには (「file」から始まることを条件とするには) ^file[0-9].dat または \Afile[0-9].dat を使用します。
これらのタイプの正規表現パターンを取得処理に使用できます。
アダプタには、各プロパティーの後に正規表現をオプションとして許可する File Name Is Pattern または Directory Name Is Pattern 設定パラメータが備わっています。この機能を使用して、入力したパターンが正規表現か、またはリテラルに解釈する静的なテキストエントリかどうかを指定できます。
正規表現は、ファイル名に対する部分一致でも解決します。この解決処理は、ファイル名ではなくファイル名の内容を検索します。