2010-11-26 95 views
0

我有超過300個項目在列表中,我需要改變其結構。他們目前的結構是這樣的:Texmate正則表達式和查找和替換?

<li rel="/images/employees/kristi-robison-animated.gif"> 
    <hgroup> 
     <h1>Kristi Robison</h1> 
     <h2>Senior Proofreader</h2> 
    </hgroup> 
    <img src="/images/css/shim.gif" data-static="/images/employees/kristi-robison-static.gif" alt="Kristi Robison"> 
</li> 

...我需要重新調整它像這樣:

<li> 
    <hgroup> 
     <h1>Kristi Robison</h1> 
     <h2>Senior Proofreader</h2> 
    </hgroup> 
    <img src="/images/css/shim.gif" data-static="/images/employees/kristi-robison-static.gif" data-animated="/images/employees/kristi-robison-animated.gif" alt="Kristi Robison"> 
</li> 

因爲有這麼多,我不想去通過手動做到這一點。有沒有辦法做到這一點與正則表達式和查找和替換?

回答

2

寫一個腳本,他們真的很擅長這些東西!嘗試將您的html文件滾動到此Ruby腳本中,例如:

while line = gets 
    if line[/^(.+?)<li rel="(.+?)">/] 
    rel = $2 
    line = "#$1<li>" 
    elsif line[/^(.+?)<img src="(.+?)" data-static="(.+?)" alt="(.+?)">/] 
    line = "#$1<img src=\"#$2\" data-static=\"#$3\" data-animated=\"#{rel}\" alt=\"#$4\">" 
    end 
    puts line 
end 
+0

完成編寫一個腳本,執行類似於您的建議的腳本。謝謝! – 2010-11-28 03:31:31

0

完全脫離主題,但你甚至可以把一個hgroup和標題放在裏面嗎?我對html5有點新,所以也許這是有效的,你確認了嗎?

+0

尚未驗證,但我沒有閱讀過,您不能。 – 2010-11-26 22:50:15

0

我不知道Texmate特別,但這裏的,做它,例如一個正則表達式,sed的:

sed 's/li rel="[^"]*">/li>/' 

希望有所幫助。