Насколько мне известно, они идентичны. Я думаю, что, возможно, есть несколько движков, которые не поддерживают нумерованный синтаксис, но я не уверен, какой именно. Я смутно припоминаю вопрос о SO несколько дней назад, когда явная запись не работала в Notepad ++.
Единственный раз, когда я бы использовал явно пронумерованное повторение, это когда повторение больше 1:
- Ровно два:
{2}
- Два или более:
{2,}
- От двух до четырех:
{2,4}
Я, как правило, предпочитаю это, особенно когда повторяющийся шаблон содержит более нескольких символов. Если вам нужно сопоставить 3 числа, некоторые люди хотели бы написать: \d\d\d
, но я бы предпочел написать \d{3}
, так как он подчеркивает количество повторений. Кроме того, в будущем, если это число когда-либо потребуется изменить, мне нужно всего лишь изменить {3}
на {n}
, а не пересматривать регулярное выражение в моей голове или беспокоиться о том, чтобы испортить его; это требует меньше умственных усилий.
Если этот критерий не выполняется, я предпочитаю сокращение. Использование «явной» записи быстро загромождает шаблон и затрудняет его чтение. Я работал над проектом, в котором некоторые разработчики не слишком хорошо знали regex (это не совсем любимая тема), и я видел много случаев {1}
и {0,1}
. Несколько человек попросили бы меня проверить код их шаблона, и тогда я предложил бы заменить эти вхождения на сокращенную запись, сэкономить место и, ИМО, улучшить читаемость.