java - 在字符串中,将具有某些属性的每个 HTML 元素添加到具有任意属性的任意值的新任意元素中
问题描述
我有一个包含此 HTML 代码的字符串:
abc <h1><div style="color: rgb(190, 6, 6);">ABC <span style="color: rgb(0, 255, 6);">DEF</span></div></h1>
我的程序必须检测到color
已被使用,以便它自动将元素(div
和span
)添加到一个新元素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>
解决方案
使用此正则表达式进行搜索和替换
pattern = "(<div[\s]+style=")(color:[\s]+rgb\([\d]+, [\d]+, [\d]+\))"
replace by "<font color=\"$2\">$1\"$2\"
这适用于 div。同样,您可以为 span
推荐阅读
- javascript - 如何用函数改变变量的值?
- angularjs - Angularjs dataTable stateSave 没有改变路线
- angular - Highlighjs 用于 Angular 8 中的动态高亮语法
- excel - Google 表格中的基本循环
- c# - 我如何写一个列表
将 .csv 文件作为单列放入? - java - 如何在 Java Swing 中从 JTable 中删除或更新记录 sql
- java - 为什么java中数组上的for循环不会初始化
- laravel - 如何修复laravel中缺少必需的参数
- php - 如何通过授权密码获取访问令牌?
- rust - Rust actix-web 线程不安全移动