【问题标题】:Android - Matcher.find() infiniteAndroid - Matcher.find() 无限
【发布时间】:2013-07-14 12:48:07
【问题描述】:

我已经实现了 AsyncTask,其中用户提供的正则表达式用于匹配巨大的 html 代码数据。然而,由于一些正则表达式包含大量量词/回溯,Matcher.find() 变得无限。

我曾尝试使用此处提供的 InterruptibleCharSequenceHow to terminate Matcher.find(), when its running too long?,但似乎永远不会调用 charAt,因此永远不会被中断。我最后的猜测是创建一个新进程来运行这个常规匹配过程,然后在取消搜索时将其终止。但是,由于进程不同,我在 Service 和 Activity 之间共享对象时遇到了问题。

【问题讨论】:

    标签: android regex replace matcher


    【解决方案1】:

    使用 RegEx 解析 HTML 是个坏主意,请参阅:Parsing Html The Cthulhu Way

    如果改为解析 DOM 呢?我不久前尝试过jsoup,发现它非常好用。

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 2012-06-25
      • 2014-07-28
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      相关资源
      最近更新 更多