Прочитав несколько вопросов/ответов за последние несколько недель, я видел использование \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