2012-10-11 67 views
2

嗨,我试图找出一种方法来从谷歌供稿API返回的搜索结果中删除标签。他们的结果是删除特殊字符的java

Breaking \u003cb\u003eNews\u003c/b\u003e Updates 

我们如何删除这些字符? 我不确定RegEx是否会更好(或更糟糕)。有没有人有如何删除这些想法? Google不提供从JAVA结果中删除标签的选项。欢迎任何提示,谢谢。

+0

你可以明确地发布你想要删除的标签吗? –

+0

你想替换这些: - '\ u003c','\ u003e' ?? –

+0

是的,我们该如何删除这些字符? – Sri

回答

0

您可以使用正则表达式如下..

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> ..

+0

@Srinivas ..试试上面的正则表达式..它工作:) –

0

最好的解决办法是使用JSON将数据转换。

JSON.parse(JSON.stringify({a : '<put your string here>'})); 

这将是正确的,你会从谷歌API获取的数据将在JSON形式。

+0

不能找到JSON类,对不起 – Sri

1

我拉那些经常与

String.replaceAll("\\p{Cntrl}","") 
+0

对不起,不工作 – Sri

+0

我猜\ u003cb不是Java它必须是json所以这是我能做的最好的 –

0

这是HTML。 \u003cb\u003e转换为<b>

你要使用HTML解析器HTML不完全分析,能够通过正则表达式。

有了这样Jsoup库,你可以做到这一点的。

String data = Jsoup.parse(html).body().text(); 

这会给你"Breaking News Updates"