我已经实现了AsyncTask,其中用户提供的正则表达式用于匹配巨大的html代码数据。但是,因为一些正则表达式包含大量量词/回溯,所以Matcher.find()变得无限。
我尝试使用此处提供的 InterruptibleCharSequence :How to terminate Matcher.find(), when its running too long?,但似乎 charAt 永远不会被调用,所以永远不会被打断。我的最后一个猜测是创建一个新进程来运行这个常规匹配过程,然后在取消搜索时终止它。但是,由于进程不同,我在Service和Activity之间共享对象时遇到问题。
答案 0 :(得分:-3)
使用RegEx解析HTML是一个坏主意,请参阅:Parsing Html The Cthulhu Way
如何解析DOM呢?我前一段时间试过jsoup,发现它非常干净。