2009-01-19 68 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); 
} 
相关问题