Я пытаюсь написать регулярное выражение, которое соответствует строке формы ##-##
(где # соответствует любой цифре), с оговоркой, что вторая пара цифр не может быть «00». Выражение должно использоваться с re.search и должно фиксировать первое вхождение шаблона соответствия.Могу ли я сделать это (Python) регулярное выражение быстрее?
Вот что у меня есть (который работает):
the_regex = re.compile("(\d\d-(?:0[123456789]|[123456789]\d))")
Я не дикий о филиале или длинных групп символов. Может ли кто-нибудь предложить лучшее (более понятное или необязательно более эффективное) регулярное выражение?
(Да, это микро-оптимизации, и я внял соответствующие предупреждения от Кнута.)
Должно ли оно соответствовать, когда строка содержит что-то вроде: '123-123'? (Ваше текущее выражение (и все ответы до сих пор) не обеспечивает никаких граничных условий и будет соответствовать: '23-12' внутри:' 123-123'.) – ridgerunner
@ridgerunner хорошая точка, но в этом случае строки, соответствующие совпадению гарантированно не иметь этого случая. – dcrosta