#регулярные_выражения
Пытаюсь сделать минипарсер формулы, на выходе должно быть 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 выражение на основе групп со сбросом нумерации захватывающих подмасок будет выглядеть как (?
Комментариев нет:
Отправить комментарий