У меня возникли проблемы с названными группами захвата и их повторным использованием. Похоже, когда я назвал группу захвата A, и она сначала захватывает что-то вроде asd, и я использую \ k и пытаюсь снова использовать выражение группы захвата A, это не работает, потому что оно не соответствует регулярному выражению I originaly написал в группе A, но вместо этого он пытается сопоставить то, что A соответствовало ранее, что является «asd».Regex: снова использовать группу захвата
Так что, если у меня есть что-то вроде:
^(?<A>(?:a|s|d))\k<A>$
И я печатаю:
aa
Это работает, так как группа захвата Первая соответствует буква а и \k<A>
теперь также ищут а.
Ввод текста в as
не работает, однако, поскольку первый совпадающий a и \k<A>
теперь ищет другого a.
Что я хочу сделать, это повторное использование самого регулярного выражения группы захвата A еще раз. Поэтому я хочу \k<A>
= (?:a|s|d)
.
В чем проблема и есть ли способ исправить это?
Спасибо!
Вы ищете [рекурсия] (http://www.regular-expressions.info/recurse.html). К сожалению, это не широко поддерживаемая функция. Я не думаю, что posix-ere поддерживает его. –
@Rawing Да, это сработало. Вместо этого я использовал \ g'name ', но были проблемы с моим текущим регулярным выражением, но теперь все работает. Отправьте это как ответ, и я дам вам очки. – Piwwoli
Здесь не так, если вы можете использовать '\ g'name'' тег posix-ere. Какая среда? PHP? Рубин? –