こんにちは、管理人の@Salesforce.Zです。
この間、TerraSky社の製品であるDataSpiderを使い、データ連携をした。
Aシステム ➜ CSVファイル ➜ DataSpider ➜ Salesforceの流れでやった。
よくあるやり方:処理後のCSVフィアルをバックアップフォルダに移動するとう後処理があり、ここで少しハマった。
ハマったこと:正規表現でファイル名を探し、ヒットしたら、移動する。しかしファイル名にはたまに 括弧や正規表現のメタ文字が入ってしまうため
移動対象はずのに、移動されない。
そこで、この記事を作る理由だ。
目次
問題点
正規表現で、移動対象ファイルを検索するときに、ファイル名に正規表現のメタ文字がある場合、ヒットしない
例:yyyyMMddhhmmss_データファイル(A社用).csv
メタ文字例:\ * + . ? { } ( ) [ ] ^ $ - |
ソリューション:エスケープする
正規表現のメタ文字がある場合、それを普通の文字として扱えるようにするには、
\メタ文字で対応する
特殊文字 あるいは、 メタ文字、をスラッシュ(\)を前につけて、文字として認識してくれる
ベースのところは、これになる。実際の開発上では、様々なケースになる。いかにこのベースのところに持ってこれるように処理し加工すれば、いいはずだ。
最後に
対応しないで、済むほうほうもあり、それはプログラムの動作前提条件をクライアントに共有する
認識した上で、対応していないプログラムを使ってくださいことにする。
例:1.本ソフトウェアを使用する前提条件として連携フィアル名に正規表現のメタ文字を使わないこと 2.連携ファイル名の命名規則を決めて、正規表現のメタ文字が入らないようにすること #1、OR #2のように前提条件を設定すれば、問題がないはずだ。