【发布时间】:2017-02-01 00:40:15
【问题描述】:
我在使用 RegExp 搜索 HTML 标记之间的文本时遇到了一些困难。这是用于在 HTML 页面上搜索文本而不在 HTML 的标签或属性中找到匹配的字符的搜索功能。找到匹配项后,我用 div 将其包围,并为其分配一个突出显示类以突出显示 HTML 页面中的搜索词。如果 RegExp 也匹配标签或属性,则 HTML 代码正在损坏。
这是 HTML 代码:
<html>
<span>assigned</span>
<span>Assigned > to</span>
<span>assigned > to</span>
<div>ticket assigned to</div>
<div id="assigned" class="assignedClass">Ticket being assigned to</div>
</html>
我想出的当前正则表达式是:
(?))赋值(?!\)/gi
如果分配或分配匹配是标签中文本的开始,但不在其他标签上。它可以很好地忽略属性和标签,但如果文本不以搜索字符串开头,则效果不佳。
有人可以帮我吗?我已经为此工作了一个小时,但找不到解决方案(RegExp noob here..)
更新 2
https://regex101.com/r/ZwXr4Y/1 显示有关 HTML 实体和 HTML cmets 的剩余问题。
搜索时留下的问题是&nbsp;没有被忽略,HTML实体和cmets中的所有文本都应该被忽略。因此,在搜索“b”时,即使 HTML 实体正确位于 HTML 标记之间,它也不应该匹配 &nbsp;。
【问题讨论】:
-
在
>和下一个<之间搜索文本 - 类似于:/>([\w> ]+?)</g。 Regex101