正則表達式為啥搜索快?或者啥時候比簡單字元串的形式搜索快?

很多文本處理工具比如notepad和sourceinsight都支持正則表達式搜索,還有ULtraedit也是。


當然慢,比直接匹配字元串快是不可能的。如果這種事情真的發生了,只能說因為太常用,所以花大力氣優化了,但是直接匹配字元串因為沒有KPI的壓力是隨便寫的。


正則表達式的匹配可以用有限狀態自動機實現,時間複雜度也就是O(n),所以比較快。但是比起固定字元串肯定是慢一些的,後者可以用通常常數更小的kmp,bm等演算法。


這些工具有這個功能不是因為正則快,而是可以實現一些複雜的搜索


正則只是一個搜索UI入口,還是個不好的入口,你從這個角度去理解正則就對了。


推薦閱讀:

使用「融 360」來選擇金融產品的體驗是怎樣的?效果如何?
開源爬蟲框架各有什麼優缺點?
網路爬蟲技術的原理及使用實例是什麼?怎麼樣界定使用爬蟲技術獲取信息是否違法?最好是詳細點的說明。
如何利用好Google Scholar(谷歌學術)?
在智能電視上,怎樣做搜索才能讓交互更好?

TAG:搜索 | 匹配 | 正則表達式 | 字元串 |