正则表达式以修复 <div>s 内部<p>



我需要修复无效的html(Ps中的div)。我正试图找到一个正则表达式来修复它,但我做不到。正则表达式必须用</p><DIV>...</DIV><p>替换Ps内的<DIV>...</DIV>,但不能替换Ps外的DIV。

类似(伪随机):

s/(<p>)(NOT_</p>*)(<div>.*?</div>)/$1$2</p>$3<p>/

这是初始html(错误):

<p>
  text 1
  <div>inside div 1</div>
  <div>inside div 2</div>
  text 2
</p>
text 3
<div>inside div 3</div>
text 4
<p>
  text 5
  <div>inside div 4</div>
  text 6
</p>

它应该是这样的:

<p>
  text 1
  </p><div>inside div 1</div><p>
  </p><div>inside div 2</div><p>
  text 2
</p>
text 3
<div>inside div 3</div>
text 4
<p>
  text 5
  </p><div>inside div 4</div><p>
  text 6
</p>

提前谢谢。

此正则表达式将在PCRE样式的正则表达式中工作
就像PHP或Notepad++中使用的一样。

(?:<p>|G)[^<>]*?K(<div>.*?</div>)|</p>K(?R)

替换为:<p>1</p>

可以在这里尝试

最新更新