Извините за запутанное название, я не мог придумать правильную формулировку. Я пытаюсь понять, есть ли способ регулярного выражения для соответствия различным строкам, в зависимости от того, была ли захвачена предыдущая группа захвата или нет.Регулярные выражения с двумя аспектами
/th?u(e|r)sday/
Это соответствует tuesday
, thursday
но thuesday
и tursday
. Есть ли способ указать в регулярном выражении, что часть должна соответствовать только, если предыдущая часть была сопоставлена ... поэтому я представляю потенциальный синтаксис, например ... (?#:pattern)
, где #
- это номер из группы захвата, и если захват группа захвачена, затем шаблон включен, в противном случае он пропускается. Аналогичная модель (!#:pattern)
для, если #
-я группа не захвачена. Этот изобретенный синтаксис должен продемонстрировать, что я пытаюсь сделать. С этим изобретено синтаксисом, я мог бы решить мою проблему выше, как это ...
/t(h)?u(!1:e)(?1:r)sday/
Есть ли такой синтаксис регулярных выражений для достижения этого типа ссылок?
Потому что это надуманный пример, для более общего принципа того, что может быть полезной функцией. Я хочу использовать его как функцию в гораздо более сложных матчах. Это действительно не помогает ответить на мой вопрос ... Я имею в виду, что я мог бы просто «/ tuesday | thursday /» правильно? –
Вот пример использования моей идеи более полезной: '^ ((From | To) | Subject): ((? (2) \ w + @ \ w + \. [A-z] + |.+)) '(от: http://www.regular-expressions.info/conditional.html) –