2015-08-25 53 views
0

我是Ant的新手,我無法完全弄清楚如何執行以下操作(如果可能的話): 我有這個基本代碼:閱讀一組文件的內容並檢查Ant中是否存在文件

<copy todir="${mydir}"> 
    <fileset dir="${mydir2}" includes="**/*.html" /> 
     <filterchain> 
      <replaceregex pattern="bla" replace="pla"/> <!-- regex1 --> 
      <replaceregex pattern="doh" replace="dah"/> <!-- regex2 --> 
     <filterchain> 
</copy> 

在通過文件集的任務遞歸的文件夾,我有一堆的HTML文件,包含一些鏈接到現有文件,一些包含指向一個不存在的文件。

現在我想要做的是:

  1. 閱讀文件集的每個文件中提取特定鏈接,它們都含有。
  2. 查看此鏈接是否指向現有文件。
  3. 如果是這樣,我使用正則表達式1。
  4. 如果沒有,我使用regex2刪除死鏈接。

因此,有一點點的一切:條件,從文件中檢索數據到Ant以在其他任務中使用它,這似乎是不可能的!

感謝您的幫助。

回答

0

使用filterchaintokenfilter replaceregex,f.e. :

<copy todir="${mydir}"> 
<fileset dir="${mydir2}" includes="**/*.html"/> 
    <filterchain> 
    <tokenfilter> 
    <!-- regex 1 --> 
    <replaceregex pattern="hello" replace="world" flags="gi"/> 
    <!-- regex 2 --> 
    <replaceregex pattern="doh" replace="dah"/> 
    </tokenfilter> 
    </filterchain> 
</copy> 
+0

謝謝,但我相信這將在該集合的每個文件上運行2個正則表達式,這已經是我的代碼所做的。如何讀取當前文件並測試內容以查看哪些正則表達式適用? – Flag

+0

@Flag不太清楚你所要求的:檢查是否存在正則表達式或替換或...?! – Rebse

+0

我想讀取文件集「循環」的當前文件,應用唯一正則表達式從文件中提取鏈接,檢查該鏈接是否解析到某個現有文件,然後在我正在閱讀的文件上應用正則表達式。 我會編輯我的主帖,嘗試使其更清晰 – Flag

0

看來Ant- contrib has a task,使您可以檢索螞蟻性質的正則表達式andstore該結果,將用於做的工作一定要測試文件是否存在,然後再上提供switch語句。