我已經閱讀了一個html文件作爲字符串builder.Now我想要在h1,h2和h3之間放置錨標籤並給出不同的id和href鏈接。那麼我怎麼能做到這一點。我想要做下面的事情。 我試過Sb.Replace("<h1>", "<h1> <a id=1>");
,但我不能給uniqe Id錨標籤。所以我怎麼讀取所有h1,h2和h3,並把錨標籤,並給錨標籤唯一的id。StringBuilder查找字符串讀取和替換
0
A
回答
1
您可以在System.Text.RegularExpressions
名稱空間中調用Regex.Replace
,並在您分配新ID的位置定義一個自定義MatchEvaluator
回調。
類似以下內容:
var regHeaders = new Regex(@"<(?<close>/)?h(?<header>\d)\s*>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
var replaced = regHeaders.Replace(sb.ToString(), new MatchEvaluator(EvaluateHeaders));
,並定義EvaluateHeaders回調是這樣的:
private static string EvaluateHeaders(Match m)
{
bool closeTag = m.Groups["close"].Success;
switch (int.Parse(m.Groups["header"].Value))
{
case 1: // h1
return closeTag ? "</a></h1>" : "<h1><a href=\"header1\">Header1";
// todo: your own implementation of the various other headers.
default:
return m.Value;
}
}
編輯
在你最新的評論來看,我已經改變了代碼如下:
var regHeaders = new Regex(@"<h(?<header>\d)\s*>(?<content>.+?)</h\1>", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
var replaced = regHeaders.Replace(sb.ToString(), EvaluateHeaders);
private static string EvaluateHeaders(Match m)
{
switch(int.Parse(m.Groups["header"].Value))
{
case 1: // <h1>content</h1>
return string.Format("<h1><a href=\"#\" id=\"{0}\">{0}</a><h1>", m.Groups["content"].Value);
default:
return m.Value;
}
}
相關問題
- 1. 用StringBuilder替換字符串?
- 2. 查找和替換c字符串
- 3. 字符串查找和替換
- 4. PHP查找和字符串替換後?
- 5. 字符串查找和替換方法
- 6. 字符串類替換和StringBuilder的替代
- 7. 在StringBuilder中替換字符
- 8. 查找和文件替換而不讀取文件作爲一個字符串
- 9. StringBuilder - 讀取N個字符
- 10. 查找前後替換字符串
- 11. 查找並替換多行字符串
- 12. 查找並替換sed的字符串
- 13. 查找並替換HEX字符串
- 14. 查找並替換國家字符串
- 15. 查找並替換字符串錯誤
- 16. 查找並替換爲字符串ArrayList
- 17. 查找字符串替換的Java
- 18. php替換字符串並讀取完整字符串
- 19. StringBuilder和字符串相等性檢查
- 20. Python中找到字符串和替換
- 21. 查找和替換字符串轉換成路徑批量
- 22. 查找並用子字符串結果替換字符串
- 23. 查找子字符串,根據情況替換子字符串
- 24. django模板,查找字符串替換爲其他字符串
- 25. 的bash腳本:查找和替換字符串多字
- 26. 在Javascript中查找和替換字符
- 27. 查找和替換字符的想法
- 28. 如何查找和替換字符串中的src和href?
- 29. 獲取字符串替換
- 30. 從文件中讀取字符串後替換字符java
你不能在一擊中做到這一點。使用RegEx可能會更好,然後一次更換1並遞增您的ID。 – lahsrah
謝謝,但我怎樣才能找到從stringbuilder的所有h1,h2和h3? – Hitesh
[HtmlAgilityPack](http://htmlagilitypack.codeplex.com/) –