2016-03-13 3 views
-1

Я пытаюсь соответствовать URLs /API/v1/пользователей ... /апи/v1/other_stuff ...Regex отрицательный предпросмотр, чтобы соответствовать URL

для /API/v1/пользователей За исключением/invitation_register

Я пытался использовать отрицательные

'назад
^\/api.*(?<!\binvitation_register\b) 

и несколько аналогичных конструкции и не имею ни малейшего представления о том, как на самом деле это сделать. Любая помощь была бы более приветствуется.

ответ

1

Вы можете использовать этот отрицательный предпросмотр вместо просмотра назад:

^\/api\/(?!v1\/users\/invitation_register\b).* 

(?!v1\/users\/invitation_register\b) является отрицательный предпросмотр что утверждает, что v1/users/invitation_register терпит неудачу после /api/.

RegEx Demo

Если ваш предназначен матч всегда начинается с /api/v1/..., то вы можете использовать:

^\/api\/v1\/(?!users\/invitation_register\b).* 

, который утверждает, что users/invitation_register терпит неудачу после /api/va/.

+1

^Это работает, для меня. :) – fusion3k

+1

Dunno, что не так, но, возможно, вы можете добавить исправленную версию регулярного выражения OPs ('^ \/api (?!. * \ Binvitation_register \ b). *') И объяснить ошибки (используется lookahead not lookbehind, обработка of. *) –

+1

Нет необходимости использовать '(?!. * \ binvitation_register \ b)', потому что все OP хочет избежать '/ api/v1/users/invite_register' и' (?!. * \ binvitation_register \ б) 'также избежит'/api/v1/foobar/invite_register' – anubhava

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