2012-10-11 68 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"