我正在编写一些C#代码来解析RSS提要并突出显示内容中的特定整个单词,但是,我只需要突出显示HTML之外的单词。到目前为止,我有:突出显示整个单词,省略HTML
string contentToReplace = "This is <a href=\"test.aspx\" alt=\"This is test content\">test</a> content";
string pattern = "\b(this|the|test|content)\b";
string output = Regex.Replace(contentToReplace, pattern, "<span style=\"background:yellow;\">$1</span>", RegexOptions.Singleline | RegexOptions.IgnoreCase);
这工作正常,除了它会突出显示单词“测试”在alt标记。我可以轻松地编写一个剥离HTML的函数,然后执行替换,但我需要保留HTML以显示内容。
圣snikey,那将需要一些时间来绕到我的头。我将它标记为答案,因为它似乎获得了最多的选票。 – 2009-08-24 02:59:10
如果html文档格式不正确,这将不起作用。并不要求所有标签都在html中关闭。以td标签为例。你可以有一个未封闭的TD标签,它是有效的HTML,但它将是一个无效的XML。如果文档是xhtml,这将起作用,但问题没有提到细节。 – Steve 2009-08-24 14:25:57
这就是为什么我的答案以“** If **输入有效的XHTML/XML”开头的原因 – dtb 2009-08-24 14:32:20