2015-10-16 48 views
0

我有1000個html頁面。和一個JS腳本。如何搜索,替換html文件中的+增量?

在頁面中的java代碼中我有某處「$ item_id = 1」。

在每一頁我必須改變id。我的意思是,在page_2.html我必須在page_3.html「$ ITEM_ID = 2」我必須「$ ITEM_ID = 3」 ...等

我檢查更TextCrawlers軟件,但它只提供給我搜索和替換,沒有增量選項。

任何想法?

回答

0

這會有所幫助。這是一個漂亮的PHP增量腳本文件。你在這裏有一條簡單的線:$ to_be_replaced ='wxyz';這4個字母(你可以放任何東西)必須放在你想增加的每個文件上。 wxyz將在第一個文件中爲1,第二個爲2,依此類推。

https://www.keepandshare.com/doc18/13577/replace-increment-zip-2k?da=y

0

聽起來像是在您選擇的腳本語言,一個小腳本作業:

  • 檢索HTML文件的文件名在目錄
  • 每個文件名:
    • 解析filename將id提取到一些變量id,例如通過/page_(\d+)\.html/example
    • 讀取文件
    • 搜索你的任期"$ item_id = 1"例如通過/\$ item_id = (\d+)/example
    • 從變量id
    • 寫文件
+0

你好。這不是關於C++或jave。這是關於一個簡單的搜索和替換,但增量。就像我必須在許多頁面中找到「xxx」,並用增量替換,如下所示:「xxx-1」,「xxx-2」,...等 如何使用正則表達式? –

+0

如果「這不是關於C++或java」,它可能是關於你的文本編輯器?你需要一個像Emacs這樣強大的編輯器來執行這個任務。我可以用一個聰明的Emacs kbd宏來實現,使用dir-ed和calculator模式。如果您對Emacs沒有經驗,那麼教您如何編寫腳本可能更容易。 – mvw

0

替換匹配字符串你可以做一個小節目與硬編碼的或動態的基本思想。 因此您定義了多個頁面(示例適用於相同的名稱)。

你把一個for循環,並使用它像(在C#):

using System.IO; 
using System.Text.RegularExpressions; 

for (int i = 1; i <= numberOfPages; i++) 
     { 
     File.WriteAllText("Path\\page_" + i + ".html", Regex.Replace(File.ReadAllText("Path\\page_" + i + ".html"), @"\$ item_id = 1", "$ item_id = " + i)); 
     } 

在你有不同的文件名的情況下,你需要使用正則表達式來獲得正確的數字,並使用for-each循環遍歷列表中的文件名。