Помогите с регулярным выражением соответствовать любому URL-адресу, кроме адреса папки администратора

Я застрял в чем-то, что, как я знаю, должно быть простым, но уже некоторое время ходим по кругу.

Я хотите создать регулярное выражение для использования с функцией маршрутизации cms с использованием php и preg_match, которое соответствует любому URL-адресу, который не начинается со строки 'admin /', поскольку somedomain.com/admin/ будет административной частью cms.

Я пробовал до сих пор

preg_match('#^([^admin])+(.+)$#', 'mens-books'))

, но это не помогло, так как строка url 'mens-books', которую я ищу, совпадает с буквой m в строке 'admin', поэтому это не удается.

Я пробовал это сделать. также так:

preg_match('#^([^admin$])+(.+)$#', 'mens-books'))

поскольку доллар символизирует конец строки, но это тоже не сработало.

Затем я сделал следующее:

preg_match('#^[?!=admin]+(.+)$#', 'mens-books'))

, который вернул истину, но только я думаю, потому что теперь?! = в регулярном выражении будет соответствовать всему, что начинается с a, d, m, i или n.

Кто-нибудь может помочь с этим, пожалуйста. Я открыт для любых предложений.

Спасибо.

Мэтт

5
задан Matthew Fedak 8 June 2011 в 21:47
поделиться