RegEx选择整个字符串但省略子字符串匹配

时间:2017-07-04 11:30:07

标签: regex regex-negation

考虑一个很长的 html 字符串:我需要没有某些标记部分的整个内容。

示例:

考虑以下字符串:

;decreasing'>1</a>&nbsp;<span class='active'>2</span><a href='&#2;F;search&

我需要选择除了范围以外的所有,因此删除以下内容

<span class='active'>2</span>

最后只有以下

;decreasing'>1</a>&nbsp;<a href='&#2;F;search&

我在regex101.com的选项背后以负面看法尝试了以下内容,但没有运气。

^(?!=(<span class='active'>(.*?)<\/span>)).*$

[其他信息]

如果我可以结合以下两个选项,它将解决问题:

  

1.选择 span 标记

之前的所有内容
.*?(?=<span)
  
      
  1. 结束范围标签开始选择所有内容:
  2.   
(?<=span>).*

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您的编码语言允许您进行正则表达式拆分或替换呼叫,则可以使用此模式:

~<(span).*?(/\1)>~或展开您的代码列表,如下所示:~<(span|div).*?(/\1)>~

Demo Link

使用正则表达式模式处理html时存在风险,但根据html的结构,它们可能会也可能不会发挥作用。