Рассмотрим ECMAScript RegExУпрощая регулярное выражение с помощью обратной ссылки
/\s*((ABC|A)(/(ABC|A)+)*)\s*/i
, который соответствует A/ABC
Использование обратной ссылки, я пытаюсь ее упростить, переписав его
/\s*((ABC|A)(/\2+)*)\s*/i
но это похоже только на соответствие A/A
Почему я испытываю такое поведение и могу Я использую backreference здесь, чтобы упростить RegEx? (Я тестирую его в Интернете по адресу http://www.regexr.com/)
Резервная ссылка не означает, что она соответствует одному и тому же шаблону, но соответствует той же строке. – Gumbo
Ты так прав, Гумбо! Я неверно истолковал это, когда читал об обратных ссылках! На определенном веб-сайте я нашел следующее предложение, которое объясняет все это: «Обратные ссылки соответствуют тому же тексту, что и предыдущая группа захвата». Это, конечно, почему я только матч A/A! Итак, теперь мой вопрос преобразуется в «Если есть группа захвата, которая появляется в нескольких местах в вашем регулярном выражении, есть ли способ сделать ваше регулярное выражение короче»? –