正则表达式,但不包含任何内容

时间:2014-07-07 06:01:20

标签: regex

以下是原文:

<p><u><font face="Calibri">2013<u>Blablabla</u><u></u></p>
<p><u>Blablabla</u><u></u></p><p>

我想使用以下正则表达式

<p><u>(.*?)<u>(.*?)</u><u></u></p>

替换第一行中的冗余<u>

<p><u><font face="Calibri">2013<u>Blablabla</u><u></u></p>

但是,这个正则表达式还包括第二行没有问题!

请帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

有关使用正则表达式解析htlm的所有警告,您可以使用:

(?s)<u>(?=(?:(?!</u>).)*?<u>)

查看the demo中的匹配项。

<强>解释

  • (?s)激活DOTALL模式,允许点在各行之间匹配,以防第二个<u>位于另一行
  • <u>符合我们所需的<u>
  • 前瞻(?=(?:(?!</u>).)*?<u>)声称接下来是......
  • (?:(?!</u>).)一个未跟</u>
  • 的字符
  • *?根据需要多次,最多
  • 第二个<u>