こんにちは、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の形式であるため、これは適切です。
This is HTML. \u003cb\u003e
translates to <b>
.
You'll want to use an HTML parser as HTML is not fully parse-able by a regular expression.
With a library like Jsoup you could do this as.
String data = Jsoup.parse(html).body().text();
This will get you "Breaking News Updates"
.
以下の正規表現を使用できます。
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>
は削除されません。