gpt4 book ai didi

java - 正则表达式替换 HTML 字符串中的样式属性

转载 作者:行者123 更新时间:2023-12-02 03:06:28 25 4
gpt4 key购买 nike

我想要一个正则表达式,它可以从给定 html 标签的 style 属性中删除属性列表。

例如:我想从跨度标记中删除高度和光标。

IP:

String htmlFragment ="<span id=\"nav-askquestion\" style=\"width:200px;cursor:default;height:100px;\" name="questions"> <b>hh</b></span>";

O/P

<span id="nav-askquestion" style="width:200px;" name="questions"><b>hh</b></span>

我有以下正则表达式,但它删除了所有出现的高度和光标,而不仅仅是 div 内

String cleanString=htmlFragment.replaceAll("(height|cursor)[ ]*:[ ]*[^;]+;",""); 

由于特定要求,不希望为此使用 html 解析器。

最佳答案

我同意其他人的观点,最好使用 HTML/XML 解析器,它允许您深入到特定元素,而不必担心任何“意外”正则表达式匹配。

但是,阅读 Xlsx 的 comment ,“您不能仅使用一个正则表达式。”我被迫使用捕获的组来发布此解决方案。这纯粹是为了演示目的

String reg = "(<span.+)((height|cursor) *:[^;]+;)(.*)((height|cursor) *:[^;]+;)(.*)";

String cleanString=htmlFragment.replaceAll(reg, "$1$4$7");

显然,它并不漂亮,并且可能仍然匹配某些 HTML 内容(而不是标签),但这是可能的。除非这是为了快速解决问题,否则我强烈建议您使用其他人建议的更合适的解决方案。一种可能的解决方案是 jsoup .

关于java - 正则表达式替换 HTML 字符串中的样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com