正则表达式删除 HTML 内的 <font> 标签

Regex to remove <font> tags inside HTML

我正在尝试找到一个正则表达式(使用记事本++),它使我能够去除每个单词中的冗余 <font> 元素,以整理它。

我有以下代码:

<font face="Arial" size="12">A </font>
<font face="Arial" size="12">
 </font>
<font face="Arial" size="12">guy </font>
<font face="Arial" size="12">
 </font>
<font face="Arial" size="12">went </font>
<font face="Arial" size="12">
 </font>
<font face="Arial" size="12">to </font>
<font face="Arial" size="12">
 </font>
<font face="Arial" size="12">get </font>
<font face="Arial" size="12">
 </font>
<font face="Arial" size="12">H </font>
<font face="Arial" size="12">
 </font>
                <font face="Arial" size="12">
    <sub>2</sub>
 </font>
 <font face="Arial" size="12">0</font>
<font face="Arial" size="12">. </font>
<font face="Arial" size="12">
 </font>

我的预期输出是:

<font face="Arial" size="12">A guy went to get H<sub>2</sub>0.</font>

到目前为止,我无法实现上述三点,因为我怀疑我是从错误的方向处理问题的。

查找: (<font[^>]+>)(.*?)<\/font>[\s]?
替换:

如果 NP++ 支持 \K\G 以及 (?|..) 构造(PCRE 兼容),
这适用于您的示例文本。

注意裁剪是泛化的,但你可能需要修改为
满足您的需求。

找到(?s)(?:(?!\A)\G|<font\s+face="Arial"\s+size="12">\K)(?|\s+()|(?:\s*\r?\n\s*)?(.*?)(?:\s*\r?\n\s*)?)</font>.*?<font\s+face="Arial"\s+size="12">
替换 </code> </p> <p>格式化</p> <pre><code> (?s) (?: (?! \A ) \G | <font \s+ face="Arial" \s+ size="12"> \K ) (?| \s+ ( ) # (1) | (?: \s* \r? \n \s* )? ( .*? ) # (1) (?: \s* \r? \n \s* )? ) </font> .*? <font \s+ face="Arial" \s+ size="12">

全部替换后的输出

<font face="Arial" size="12">A guy went to get H <sub>2</sub>0. 
</font>  

测试 RegexFormat 7