您好我正在尝试找出一种从 Google Feed API 返回的结果中删除标签的方法。他们的结果是
Breaking \u003cb\u003eNews\u003c/b\u003e Updates
我们怎样才能删除这些字符?我不确定 RegEx 是否会更好(或更糟)。有谁知道如何删除这些?Google 不提供从 Java 的结果中删除标签的选项。
我经常用
String.replaceAll("\\p{Cntrl}","")
最好的解决方案是使用 JSON 来转换数据。
JSON.parse(JSON.stringify({a : '<put your string here>'}));
这将是正确的,因为您将从 Google API 获得的数据将采用 JSON 的形式。
您可以使用以下正则表达式..
String str = "Breaking \u003cb\u003eNews\u003c/b\u003e Updates";
str = str.replaceAll("\\<(.*)?\\>(.*)\\</\\1\\>", "$2");
System.out.println(str);
输出: -
Breaking News Updates
\\<(.*)?\\>
匹配第一个开始标签 -<b>
\\</\\1\\>
匹配相应的结束标签 -</b>
\\1
用于反向引用标签的内容,以便匹配正确的标签对。所以,<b>news <update></b>
-> 在这种情况下<update>
不会被删除..
这是 HTML。\u003cb\u003e
转换为<b>
。
您需要使用 HTML 解析器,因为 HTML 不能完全被正则表达式解析。
使用像 Jsoup 这样的库,您可以这样做。
String data = Jsoup.parse(html).body().text();
这会让你"Breaking News Updates"
。