【发布时间】:2011-10-28 16:01:26
【问题描述】:
我正在使用 HttpClient 下载网站的源代码,然后我想使用正则表达式提取一些数据。不幸的是,该网站以 iso-8859-1 编码,这似乎引起了问题。这是下载网站的示例代码:
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 或tagsoup 之类的东西吗?否则this could be you.
标签: android regex httpclient iso-8859-1