Недавно я получил результаты некоторых тестов соискателей, в которых один человек утверждал, что решение, которое они дали, было более эффективным (я не буду говорить какое, поскольку не хочу влиять на ответы). Излишне говорить, что я был настроен скептически, но я не Я знаю достаточно о внутренней работе компиляторов RE, чтобы разумно комментировать.
Вопрос был в том, чтобы дать регулярное выражение для распознавания чисел от 0 до 99 включительно.
Ответы были:
[0-9]{1,2}
[0-9]?[0-9]
[0-9]|([0-9][0-9])
Мне было бы интересно, как почему любой из них быстрее (или лучше в любом другом случае). Бонусные баллы за предоставление свидетельств, а не предположений, но я все равно буду принимать гипотезу, если вы сделаете ее достаточно убедительной: -)