Прочитав несколько вопросов/ответов за последние несколько недель, я видел использование \d в регулярных выражениях perl, прокомментированных как некорректные. Как и в более поздних версиях perl \d, это не то же самое, что [0-9], поскольку \d будет представлять любой символ Юникода, который имеет атрибут digit, и что [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