【发布时间】:2010-10-27 19:15:06
【问题描述】:
在过去几周阅读了许多问题/答案后,我看到在 perl 正则表达式中使用 \d 被评论为不正确。在 perl 的更高版本中\d 与[0-9] 不同,因为\d 将代表任何具有数字属性的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
【问题讨论】: