我在學習Python,需要格式化來自IMAP的「From」字段。我嘗試使用str.find()
和str.strip()
,並使用正則表達式。使用find()等,我的函數比re(我定時)要快得多。所以,當是最好使用re?有沒有人有任何好的鏈接/相關文章? Python文檔顯然沒有提到...Python:正則表達式vs find(),strip()
1
A
回答
10
find
只匹配一個確切的字符序列,而正則表達式匹配一個模式。當然,只有尋找一個確切的序列更快(即使你的正則表達式模式也是一個確切的序列,仍然有一些額外的開銷)。
由於上述原因,如果您知道確切的序列,則應該使用find
,如果不知道確切的序列,則應該使用正則表達式(或其他)。你應該使用的確切方法確實取決於你面臨的問題的複雜性。
作爲一個方面說明,python re
模塊提供了一個compile
方法,允許您預編譯正則表達式,如果您要重複使用它。如果您多次使用相同的圖案,這可以顯着提高速度。
3
如果你打算做一些複雜的事情,你應該使用re
。它比使用字符串方法更具可擴展性。
字符串方法適合做簡單而不值得用正則表達式打擾的東西。
所以,這取決於你在做什麼,但通常你應該使用正則表達式,因爲它們更強大。
相關問題
- 1. Python正則表達式vs PHP正則表達式
- 2. 正則表達式替換strip()
- 3. Python的正則表達式VS Regex101
- 4. Python正則表達式 - re.search()vs re.findall()
- 5. 在Python中使用正則表達式自定義strip()
- 6. 正則表達式。*? vs。*
- 7. 正則表達式vs String.Contains
- 8. 使用正則表達式使用.find
- 9. 正則表達式:find function calls
- 10. ,在`工作的正則表達式find`
- 11. find命令和逆正則表達式
- 12. htaccess正則表達式vs php正則表達式
- 13. (?=正則表達式)VS(?:正則表達式)
- 14. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 15. 正則表達式python表達式
- 16. Python的正則表達式:「喜歡」正則表達式模式?
- 17. Python Unicode正則表達式
- 18. Python和正則表達式
- 19. 正則表達式或Python
- 20. Python正則表達式Findall
- 21. Python - 正則表達式dir
- 22. python re.sub正則表達式
- 23. Python正則表達式
- 24. 正則表達式python 3.4
- 25. Python正則表達式子
- 26. 正則表達式 - 在Python
- 27. Python的正則表達式?
- 28. python正則表達式appengine
- 29. 正則表達式在Python
- 30. Python的正則表達式
謝謝。我注意到兩者之間有一條細線:我會運行'str.find('abb')',然後'str [:str.find('abb')]'...多次修改字符串......它仍然比re更快。我想你真的要花時間去看看這個重新開銷是值得的。 – janeh
我現在嘗試用'compile'進行測試 – janeh