首页 > 解决方案 > 在字符串中,将具有某些属性的每个 HTML 元素添加到具有任意属性的任意值的新任意元素中

问题描述

我有一个包含此 HTML 代码的字符串:

abc <h1><div style="color: rgb(190, 6, 6);">ABC <span style="color: rgb(0, 255, 6);">DEF</span></div></h1>

我的程序必须检测到color已被使用,以便它自动将元素(divspan)添加到一个新元素font中。即使有几个元素都包含一个color规则,它也必须工作,在一个字符串中,在左边或右边添加了其他 HTML 元素。

我怎么能这样做?

上面的代码将变为:

abc <h1><font color="rgb(190, 6, 6)"><div style="color: rgb(190, 6, 6);">ABC <font color="rgb(0, 255, 6);"><span style="color: rgb(0, 255, 6);">DEF</span></font></div></font></h1>

标签: javamapping

解决方案


使用此正则表达式进行搜索和替换

pattern = "(<div[\s]+style=")(color:[\s]+rgb\([\d]+, [\d]+, [\d]+\))"

replace by "<font color=\"$2\">$1\"$2\"

这适用于 div。同样,您可以为 span


推荐阅读