Java 如果span标记具有属性,则使用正则表达式过滤span标记
我有下面的代码,如果span标记没有任何使用java的属性,我想在其中剥离或删除span标记 此正则表达式删除所有SPAN标记。]]> e、 g 输出:Java 如果span标记具有属性,则使用正则表达式过滤span标记,java,regex,Java,Regex,我有下面的代码,如果span标记没有任何使用java的属性,我想在其中剥离或删除span标记 此正则表达式删除所有SPAN标记。]]> e、 g 输出: <span style="font-weight: bold;text-decoration-line: underline;">test</span><p> </p><p>Table</p> 有什么帮助吗?用java代码试试这个 var str =
<span style="font-weight: bold;text-decoration-line: underline;">test</span><p> </p><p>Table</p>
有什么帮助吗?用java代码试试这个
var str = // your string here
str = str.replaceAll("<\\/span[^>]*>", "");
这是不可能的。正则表达式无法知道哪个结束标记属于要删除的。使用HTML解析器,例如 编辑: 实例
str=str.replace/]*>/g,;请先在此网站上试用]*>使用此功能此功能无效。它将删除所有结束标记,即使是属于未删除的开始标记的标记。在您提供的网站中,如果我将其放入正则表达式中,]*>它与任何内容都不匹配。@Kalpesh str=str.replaceAll]*>;“我们有样本来实现这一点吗?”Kalpesh补充了一个例子。非常感谢。成功了。还有一个问题。其输出如下所示:测试表,在单独的行上。这可以是单行吗?您可以在文档的输出设置中禁用格式设置:doc.outputSettings.prettyPrintfalse;
var str = // your string here
str = str.replaceAll("<\\/span[^>]*>", "");
String html = "<span style=\"font-weight: bold;text-decoration-line: underline;\">test</span><p><span> </span></p><p><span>Table</span></p>";
Document doc = Jsoup.parse(html);
for (Element span : doc.getElementsByTag("span")) {
if (span.attributes().size() == 0) {
span.unwrap();
}
}
doc.outputSettings().prettyPrint(false);
String result = doc.body().html();