2009-01-19 69 views

回答

1

正則表達式將是我的方式。 ;)

0

搜索字符串,你會想查找正則表達式。至於標記它,一旦你有子字符串的位置,它應該足夠簡單,使用它來添加一些東西來包裝短語。

1

如果您使用符合XHTML的HTML,則可以將其作爲XML文檔加載,然後使用XPath/XSL--長長的蜿蜒但優雅?

我過去使用的方法是使用HTMLTidy將雜亂的HTML轉換爲XHTML,然後使用XSL/XPath將屏幕內容轉換爲數據庫,以創建反向內容管理系統。

正則表達式可以做到這一點,但是如果嘗試剝離標籤,圖像名稱等以消除誤報,可能會很複雜。

1

在簡單的情況下,正則表達式會做。

string input =「ttttttgottttttt」;
string output = Regex.Replace(input,「go」,「<strong> $ 0 </strong >」);

將產生:「TTTTTT < STRONG>去< /強> TTTTTTT」

但是,當你說HTML,如果你指的是渲染的最後文本,這是一個有點亂。假設你已經有了這個HTML:

<跨度類= 「firstLetter」 >乙</SPAN > OOK

爲了突出這個詞 '書',你會需要一個適當的HTML渲染器的幫助。爲了簡化起見,可以先刪除所有標籤,只留下內容,然後進行通常的替換,但是它感覺不正確。

1

你可以看看使用Html DOM,SourceForge.net上的一個開源項目。 通過這種方式,您可以以編程方式操作文本而不是依賴正則表達式。

+0

它處於alpha狀態,2005年最後一次更新,意味着不再維護。 – 2009-02-07 17:38:58

7

我喜歡使用Html Agility Pack非常容易使用,雖然最近沒有太多更新,但它仍然可用。例如抓取所有鏈接

HtmlWeb client = new HtmlWeb(); 
HtmlDocument doc = client.Load("http://yoururl.com");    
HtmlNodeCollection Nodes = doc.DocumentNode.SelectNodes("//a[@href]");   

foreach (var link in Nodes) 
{     
    Console.WriteLine(link.Attributes["href"].Value); 
} 
相關問題