Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Помогите объединить регулярное выражение

#регулярные_выражения


Пытаюсь сделать минипарсер формулы, на выходе должно быть 5 групп:

(1)(2)(3)(4)(5)


Есть 3 возможных варианта:


Если после буква заглавная, то после неё может следовать 'w', вторая группа в этом
случае пустая:

([2-3]?)()([ACD]{1})([w]?)([2']?)
Во втором случае вторая и четвёртая группы всегда пустые:

([2-3]?)()([acd]{1})()([2']?)
Если вначале 2 цифры, то обязательно через '-' и обязательно первая меньше второй...
т.е. тут нужно как-то исключить вариант '3-3' из возможных. Четвёртая группа в этом
случае всегда пустая.

([2-3]{1})-([3-5]{1})([acd]{1})()([2']?)


Как объединить эти три правила в одну формулу? Может быть, что-то можно записать
компактнее?
    


Ответы

Ответ 1



Немного оптимизированное для PCRE выражение на основе групп со сбросом нумерации захватывающих подмасок будет выглядеть как (?

Комментариев нет:

Отправить комментарий