2013-03-07 3 views
3
(?:\/(\w+?=\/)\/(\w+))* 

Есть ли способ получить обратные ссылки из одной группы? В моем выражении выше no-reference (? :) не позволяет всей группе захватывать обратные ссылки?Создание обратных ссылок от повторяющейся группы

Попытка соответствовать, например: /hello/how/are/you.../today и захватить все значения между «/»

+0

'\ w' не должно быть окружено' '' '' '. И я уверен, что перед '? =' Должна быть открывающая скобка (с соответствующими изменениями). – Dukeling

+0

Я добавил \ w, чтобы упростить чтение. отредактирован, чтобы сделать его более легким для чтения. thx –

+0

. Самое быстрое решение - удвоить '/' – BlackBear

ответ

2

Есть ли способ, чтобы получить обратные ссылки из внутри группы ?

Да. Группы не интерпретируются в иерархии. Например, (a(b)) имеет две группы, одну и две, которые могут быть (назад) указаны. В терминах ссылок он равен (a)(b). Порядок ссылок просто определяется порядком групп (определяемых началом группы) в шаблоне регулярных выражений. Тот факт, что одна группа является частью другой группы, не меняет этого факта.

В моем выражении выше no-reference (?) Предотвращает захват всей группы во всей группе?

Нет. Это предотвращает группу, отмеченную как группу не захвата, от захвата (обратной) ссылки. Вложенные группы не подвержены влиянию и будут зафиксированы, если они тоже не будут отмечены как группы без захвата.

+0

Ну, мне понадобилось всего пару месяцев, чтобы отметить это но ty для ответа. Примеры Regex имеют тенденцию быть довольно слабыми, поэтому в любое время я сталкиваюсь с чем-то, что осложняет его либо кучу тестирования, либо stackoverflow. –

+0

хорошо спасибо за отметку в любом случае :) –

Смежные вопросы