Python:正则表达式vs find(),strip()

jan*_*neh 1 python regex string

我正在学习Python,需要格式化从IMAP收到的"From"字段.我尝试使用str.find()str.strip(),并使用正则表达式.使用find()等,我的函数运行速度比使用re(我计时)快得多.所以,当它更好地使用重?有人有任何与之相关的好链接/文章吗?Python文档显然没有提到......

ver*_*ald 10

find只匹配一个确切的字符序列,而正则表达式匹配一个模式.当然,只查找精确序列的速度更快(即使您的正则表达式模式也是一个精确的序列,仍然会涉及一些开销).

作为上述结果,find如果你知道确切的顺序,你应该使用,如果你不知道,你应该使用正则表达式(或其他东西).您应该使用的确切方法实际上取决于您遇到的问题的复杂性.

作为旁注,python re模块提供了一种compile方法,允许您在重复使用它时预编译正则表达式.如果您多次使用相同的模式,这可以大大提高速度.