2014-10-19 55 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