2014-10-19 83 views
0

如何优化这些正则表达式搜索?目前,他们采取了5秒我的手机上优化正则表达式搜索

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

我首先搜索对话,然后搜索对话中的单个消息等等。

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

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

回答

3

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

取而代之,我找到了一个很好的Java库,名为jsoup,它可以快速解析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"也可能有帮助。

+0

感谢这个想法...但事实证明,这个解决方案比我的实际正则表达式操作花费的时间更长(请参阅编辑说明) – joz 2014-10-19 22:17:26