Я новичок в более продвинутых концепциях регулярных выражений и начинаю изучать взгляды за спиной и предвкушением, но я растерялся и нуждаюсь в некотором руководстве.У меня есть сценарий, в котором у меня может быть несколько различных видов почтовых индексов, называемых примерно так:
v1.1.2-beta.2.zip
v1.1.2.zip
Я хочу написать регулярное выражение из одной строки, которое может найти группы совпадений в обоих типах.Например, если тип файла - первый почтовый индекс, я хотел бы, чтобы три группы соответствий выглядели следующим образом:
v1.1.2-beta.2.zip
Group 1: v1.1.2
Group 2: beta
Group 3. 2
или если вторая группа совпадений zip одна:
v1.1.2.zip
Group 1: v1.1.2
Это гдевсе начинает сбивать меня с толку, так как я предполагаю, что регулярное выражение должно будет утверждать, существует ли дефис, а если нет, то искать только одну группу совпадений, если не найти другую 3.
(v[0-9.]{0,}).([A-Za-z]{0,}).([0-9]).zip
Это было первоначальное регулярное выражение, которое я написал: ведьма успешно соответствует первому типу, но не имеет условного выражения.Я думал о том, чтобы сделать что-то вроде диапазона группы совпадений без цифр после дефиса, но не могу заставить его работать и не знаю, чтобы заставить его игнорировать остальную часть шаблона и принять только первую группу, если это не такнайти дефис
([\D]{0,}(?=[-]) # Does not work
Может ли кто-нибудь указать мне правильное направление?