HttpClientを使用してウェブサイトのソースコードをダウンロードしています。正規表現を使用してデータを抽出します。不幸にも、このウェブサイトはiso-8859-1でコード化されており、問題を引き起こしているようです。Androidの正規表現エンコーディング
HttpGet query = new HttpGet(url);
HttpResponse queryResponse = httpClient.execute(query);
String queryText = EntityUtils.toString(queryResponse.getEntity()).replaceAll("\r", " ").replaceAll("\n", " ");
そして表現:ここでは、ウェブサイトをダウンロードするためのサンプルコードです
Pattern patter = Pattern.compile("<p class=\"qt\">(.*?)</p>");
Matcher matcher = pattern.matcher(queryText);
while (matcher.find()) // do something
は問題は特殊なISO-8859-1文字がある場合、それはいくつかの出現箇所を欠けているということです。 (.*?)
と一致していないようです。この問題の原因は何ですか?どうすれば修正できますか?
「正規表現を使用したい」という全体が最初の間違いです。 [jsoup](http://jsoup.org/)や[tagsoup](http://ccil.org/~cowan/XML/tagsoup/)のようなものを代わりに使用することを検討しますか?そうでなければ[これはあなたかもしれません](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)。 –