【发布时间】:2011-09-05 04:48:48
【问题描述】:
我正在寻找一种通过去除 html 标签来突出显示 html 块中的关键词的好方法。我可以使用正则表达式在 html 标签中搜索关键词,但我还没有找到一种跨标签搜索的好方法。例如,如果关键字词组是“未绑定”,我希望能够做到这一点
<p>I am not<strong>bound to please thee</strong> with my answers.</p>
被高亮标签包裹,而不破坏“强”标签(并使html无效)并成为:
<p>I am <span class="highlight">not</span><strong><span class="highlight">bound</span> to please thee</strong> with my answers.</p>
主要问题是保持 html 原样并使用高亮标签包装文本块。我需要维护原始的html。否则我会剥离标签。
我现在能想到的最好的解决方案是制作一个 html 副本并在每个空格出现的地方放置计数器标记,然后剥离所有标签并搜索匹配的短语,然后回顾原始和标记化字符串并找出从哪里开始构建高亮标签,然后开始向前走,根据需要从匹配开始到结束开始和结束高亮范围。这似乎有点矫枉过正。如果可能的话,我想要更优雅的东西。
解决方案可以用 C# 或 javascript 编写,具体取决于。
【问题讨论】:
标签: html regex search xhtml highlight