おそらく、キャプチャを使用して適切な正規表現を作成する場合です。
これは、あなたが与えた例でうまくいくようです。
<property name="prefix" value="this " />
<replaceregexp flags="s" match="^(${prefix})?(.*)" replace="${prefix}\2">
<fileset dir="files" />
</replaceregexp>
files
ファイルはファイルセットを使用して指定されます。ここでは、ディレクトリ内のすべてのファイルです。
- オプションで追加したいプレフィックスは です
this
。これはプロパティに保存されます。これは 2 つの場所で言及する必要があるためです。
- この
flags="s"
設定により、(各行を照合するのではなく) 照合の目的でファイルを単一の文字列として処理することが保証されます。
- 正規表現はファイル内のプレフィックス文字列を探し、それをキャプチャに保存しますが、
\1
これは破棄されます。
- 文字列の残りは capture にあり
\2
ます。
- プレフィックス文字列に置き換え、その後に capture を続け
\2
ます。
常にプレフィックスを追加すると考えるかもしれませんが、プレフィックスが既に存在する場合はプレフィックスを削除した後...ただし、既存のものと異なる場合を除き、replaceregexp
タスクはファイルを書き込みません。