在过去的几周中,阅读了许多问题/答案后,我发现\d在perl正则表达式中使用注释不正确。与在更高版本的perl中不同的\d是[0-9],\d它将代表具有digit属性的任何Unicode字符,并且[0-9]代表字符'0','1','2',...,'9'。
我欣赏在某些情况下[0-9]将是正确的用法,而在其他情况下将是正确的用法\d。我想知道哪个人认为使用的是正确的默认设置?
就我个人而言,我觉得这种\d表达方式非常简洁和富有表现力,而相比之下,[0-9]则显得有些笨拙。但是我几乎没有做多语言代码的经验,或者说对于不适合ASCII字符范围的语言的代码,因此可能很幼稚。
我注意到
$find /System/Library/Perl/5.8.8/ -name \*pm | xargs grep '\\d' | wc -l
298
$find /System/Library/Perl/5.8.8/ -name \*pm | xargs grep '\[0-9\]' | wc -l
26
一只萌萌小番薯
慕尼黑5688855
相关分类