跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 的 re 库运行 re.search 或者 re.match 的时间复杂度是大概是多少?
未分類
14 7 月 2020

Python 的 re 库运行 re.search 或者 re.match 的时间复杂度是大概是多少?

Python 的 re 库运行 re.search 或者 re.match 的时间复杂度是大概是多少?

資深大佬 : zhoudaiyu 35

有个后台任务要与 2500 个左右正则做匹配,再加上查三次库要接近 40s 才能完成,感觉正则匹配非常慢。
大佬有話說 (5)

  • 資深大佬 : dsg001

    不预编译?

  • 主 資深大佬 : zhoudaiyu

    @dsg001 没有做

  • 資深大佬 : Vegetable

    python 的算法和其他语言没什么太大区别,但是好的正则和坏的正则有天壤之别。
    复杂度是可以做到 O(N)的吧,这个我不太确定。

  • 資深大佬 : ClericPy

    不提 NFA DFA 什么的… 你这复杂度明显还是看自己表达式写的问题吧, 有些语法复杂度确实格外大开销就大…

    至于要做 2500 次正则, 这需求层面没有可以优化的了么, 如果是匹配关键词走 AC 自动机更快点; 如果是匹配 url 可以先按 host 做好 map; 其他需求也有其他的解耦

    至于前面的说提前 compile, 之前倒是看到 Python 的 re 是有缓存的, 是否预编译差距不该这么大, 打上 log 看看是不是查库那边的 IO 开销

  • 主 資深大佬 : zhoudaiyu

    @ClericPy 查库很快的 2s 就够

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具