如何使用RegEx选择<span> text </span>,不包括<p> <span> text </span> </p>

时间:2011-12-24 07:08:27

标签: regex

如何使用RegEx选择<span> some text </span>排除<p><span>some text </span></p>

举个例子:

<p><span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur porttitor dignissim feugiat. Ut dui ligula, 

  <span>SELECT THIS ELEMENT, including span tags</span>,

bibendum sed nisi. Donec lectus justo, tempor ac mattis sit amet,
imperdiet at nibh. Maecenas ac laoreet felis. Vestibulum ultricies
mi in diam sagittis in molestie urna porta.</span></p> 

我需要选择那些额外的跨度并替换或删除它。

2 个答案:

答案 0 :(得分:0)

如果你找不到直接答案,那么一个hack就是首先选择全文,然后只选择内部跨度文本,并从完整文本中删除内部跨度文本。但是你需要确保内部文本是唯一的。

另一种方法是从完整的html中删除内部html。这样就可以消除意外的文本重复,因为您将删除完整的内部文本

答案 1 :(得分:0)

我找到了解决方案:

(< p><s pan>)([^>]*)(< span>)([^>]*)(< /span>)查找/搜索,并将其替换为\1\2\4

如果有人复制这个,他必须在标签的开头放一个空格

几乎所有标签都适用于我。