2011-11-04 86 views

回答

1

這將工作。請注意,我只捕獲href內部的任何內容。

resultString = Regex.Replace(subjectString, @"(?<=<a[^>]*?\bhref\s*=\s*(['""]))(.*)(?=\1.*?>)", "$2.html"); 

並將.html附加到它。您可能希望將其更改爲您的需求。

編輯:火焰戰爭開始之前。是的,它會適用於您的具體示例,不適用於互聯網中所有可能的html。

1

你不應該用正則表達式解析HTML。詳情請參閱 this question的回答。

UPD:正如TrueWill指出的那樣,您可能希望使用Html Agility Pack進行替換。但是在某些特殊情況下,FailedDev提出的正則表達式將會執行,不過我會稍微修改它,使其看起來像這樣:@"(?<=<a\b[^>]*?\bhref\s*=\s*(['""]))(.*)(?=\1.*?>)"(在<a之後放置\b以排除以「a」開頭的其他標記)。

+0

我不想解析HTML,我試圖在html文件中進行字符串替換。 – Justin808

+0

一個簡單的正則表達式就是'(。*?)'查找零件。 – jCoder

+2

@ Justin808但要正確地做到這一點,實際上你需要解析文檔。例如,你可能會想忽略腳本和評論。 – Gebb