优化正则表达式搜索

时间:2014-10-19 16:10:10

标签: android html regex

我如何优化这些正则表达式搜索?目前,我的手机最多需要5秒钟

  • 会话:<div class="field-items">.+?sms-notregion
  • 地点:(?<=de/ort/)[^"]+
  • ID:(?<=sms-share-id sms-tagline-elem">#)\d+
  • 单个消息:sms-participant sms-participant-.+?</div></div>
  • 参与者:(?<=sms-participant-)\d
  • 时间:(?<=sms-tag">)\d+:\d+
  • messagetext:(?<=sms-bubble">).+?(?=</div>)

我首先搜索对话,然后搜索其中的单个邮件,等等。

例如,我有这个网站,我匹配:http://pastebin.com/uun0uKL1

更新即可。事实证明,我的正则表达式不是我的代码的缓慢部分,而是使用Html.fromhtml(),我试图使用它来unescape html特殊字符。

1 个答案:

答案 0 :(得分:3)

Don't parse HTML with RegExes.只是不要。

相反,我找到了一个名为jsoup的优秀Java库,它可以快速解析HTML。

以下是使用jsoup的例子:

Document doc = Jsoup.connect("http://example.com/").get();
Elements elements = doc.select("div.sms-tag");
// Then iterate over those elements
for (Element element : elements) {
    String time = element.text();
}

这样的东西。查看their "cookbook"也可能会有所帮助。