2012-04-21 10 views
6

を置き換える私はこのように、ファイルに複数行の文字列を置換する必要があります。 Antのコード:アリreplaceregex複数行

<copy file="${file}" tofile="${newFile}" overwrite="true"> 
     <filterchain> 
      <replaceregex pattern="startString(.+)endString" replace="zzz" flags="gmi" byline="true"/> 
     </filterchain>  
    </copy> 

置き換えるためのテキストは、シングルラインであれば - すべてが正しい動作しますが、テキストは複数行のとき - replaceregexは動作しません。 私のコードで何を修正する必要がありますか?

答えて

17

いくつかの変更が必要です。入力の各行は、byline属性とmフラグである別々の入力行とみなされるべきであるという2つの設定があります。以下に私はそれらを削除し、入力が入力の一行ファイル扱いsフラグを追加しました:

<replaceregex pattern="startString(.+?)endString" replace="zzz" 
    flags="gis" byline="false"/> 

はまた、正規表現で?の添加を注記、これは場合にワイルドカード非貪欲なりますあなたは一致させたい複数の出現を持っています。

多くのためのアリReplaceRegExpマニュアルを参照してください。

+0

ありがとうございました – Alexey