【发布时间】:2011-08-05 20:27:18
【问题描述】:
对于 Python 2.5、2.6,我应该使用 string.replace 还是 re.sub 进行基本的文本替换?
在 PHP 中,这是明确说明的,但我找不到 Python 的类似说明。
【问题讨论】:
-
不惜一切代价避免正则表达式! ...直到绝对必要...
-
@jathanism:我不同意。几十年来我一直避免使用正则表达式,直到我终于花时间坐下来真正学习它们。现在我不能没有他们。正则表达式对于许多日常任务非常有用,应该是每个程序员工具箱中熟悉的工具。
-
@ridgerunner:同意,但知道何时使用它们也很重要。对于像这样的简单字符串操作,正则表达式是最重要的。我的经验法则是,如果您可以使用内置字符串函数(
split()、replace()、find()等)而不需要多个状态变量、复杂的切片等,那么您应该这样做。如果它开始变得复杂,那么您需要使用其他工具,例如正则表达式。 -
哦,还有关于正则表达式速度的一般性评论:它取决于上下文。在偶尔使用一些正则表达式运行的脚本中,您不会注意到开销。另一方面,在执行一些密集/大量处理的脚本中,当您大量使用正则表达式时,您可能会发现开销不可接受。这就是分析对于确定瓶颈在哪里很重要的地方(我想我也应该在这一点上提出过早的优化是万恶之源这一行)。
-
@Blair:我完全同意。但许多人似乎不喜欢正则表达式,因为他们发现它们“很难”,这仅仅是因为他们没有花时间学习超出表面水平的术语。是的,如果一个简单的字符串替换解决了问题,那么一定要使用它,(这也很可能是最快的解决方案)。但我看到太多复杂的字符串操作解决方案可以用一个精心设计的正则表达式轻松解决。