我想使用StringUtils.strip()修剪标记名称和属性之间的空格。因为我有一些空间无法被删除 遵循耶利哥的方法:
第一种方法删除普通空格而不删除其他语言空间。 这是我得到的错误。例如
html = "<a href=\"test.html\"><font></font></a>";
StartTag a at (r1,c1,p0) rejected because the name contains an invalid character at position (r1,c3,p2)
Encountered possible StartTag at (r1,c1,p0) whose content does not match a registered StartTagType
在jericho中还有一个generateHTML方法,但我们必须提供所有属性值等
public static java.lang.String generateHTML(java.util.Map<java.lang.String,java.lang.String> attributesMap)
在完整顺序解析中,它无法识别其他语言空间。
如何仅在标记名称和属性之间删除其他语言空间? (属性值之间的其他语言空间可以)这就是我无法做string.replaceALL()
答案 0 :(得分:0)
您可以使用String.replaceAll()。
String html = "<a href=\"test.html\"> <font></font></a>";
System.out.println(html.replaceAll("(?<=<\\w{1,100})[\\s\\u3000]+", " "));
// -> <a href="test.html"> <font></font></a>
此代码将所有空格(包括\u3000
(表意空间)替换为一个空格。空格必须以<ELEMENT_NAME
开头。但前面的内容并没有被取代。 (参见&#34;零宽度正面观察&#34;在Class Pattern中)ELEMENT_NAME
的长度在此代码中限制在1到100之间。