【发布时间】:2014-05-19 19:31:06
【问题描述】:
我在stackoverflow上找到了这篇文章
highlight words in html using regex & javascript - almost there
使用上面的文章,我正在尝试使用 c# 突出显示服务器上的 HTML 文本。代码如下:
string replacePattern = "$1<span style=\"background-color:yellow\">$2</span>";
string searchPattern = String.Format("(?<=^|>)(.*?)({0})(?=.*?<|$)", searchString.Trim());
content = Regex.Replace(content, searchPattern, replacePattern, RegexOptions.IgnoreCase);
代码似乎运行良好,除非尝试突出显示图像源中包含的单词:
搜索关键字:
ABC
搜索文字:
<div><img src="/site/folder/ABC.PNG" /><br />ABC</div>
结果将突出显示文本和图像名称。
任何帮助将不胜感激。
【问题讨论】:
-
Obligatory link。使用像 HTMLAgilityPack 这样的 DOM 解析器。
-
@Sam 我只想突出显示 HTML 中的文本。你不认为解析是一种矫枉过正吗?
-
不,你怎么知道你需要在 HTML 中走多远才能突出显示图像和标题。您应该如何确保不要在块
div周围放置内联span。 HTML 不是一种常规语言,不规则的事情将最终发生。让它更健壮并解析它。但是,根据您呈现模板的方式,也许您可以在呈现 HTML 时突出显示......而不是事后。