【发布时间】:2011-09-11 00:04:47
【问题描述】:
有人说我应该尽可能使用正则表达式,其他人说我应该至少尽可能使用它。有没有关于这件事的“Perl 礼仪”或只是 TIMTOWTDI?
【问题讨论】:
-
@Brad:如果我可以否决您的评论,我当然会。就我可能是一个 regexer 大师而言,我讨厌告诉人们照我说的做,而不是照我做的做。正确编写,正则表达式替换了复杂且难以调试的代码的页面和页面。它们可以使代码更快、更易于维护和更清晰——而不是相反(因为如果它们这样做了,你就做错了)。使用
/x;使用空格、缩进、分组和 cmets;使用命名捕获;使用较小的碎片;使用语法正则表达式;等等等等等等。 -
@tchrist:该评论并没有被解释为“从不使用正则表达式”,而是我(以迂回的形式)说正则表达式不应该总是 i> 成为第一个解决方案。如果弄错了,我深表歉意。
-
确实,Perl 程序员比其他语言的程序员更倾向于考虑正则表达式,即使这些语言也提供正则表达式功能。这是一个有点文化的东西。我们在
substr($s, 0, 5) = ""上写$s =~ s/\A.{5}//s,以及无数类似的例子。当人们未能将经过时间考验的结构化编程原则和“小就是更好”的原则应用到他们身上时,他们就会用正则表达式给自己带来麻烦。 Grammatical regexes帮助很大,还有其他工具。