Как поймать строки, которые не начинаются с "ajax /", используя регулярное выражение для CodeIgniter? - PullRequest
3 голосов
/ 23 июля 2010

Я работаю над некоторыми маршрутами для моего приложения CodeIgniter, и мне нужно объявить 'catch-all' / кроме одного регулярного выражения. Любой маршрут, который не начинается с 'ajax /', должен быть перенаправлен на основной маршрутизатор. Вот так:

$route['regexmagichere'] = "main";

Так что это определенно выходит за рамки моих навыков регулярных выражений, и мне нужна помощь. Регулярное выражение должно возвращать true для всех строк, которые не начинаются с 'ajax /', например:

$string_one = "ajax/someotherstuffhere";
$string_two = " ajax/test";
$string_three = "somestuffhere";

Здесь $ string_one будет единственным, возвращающим false. Спасибо за ваше время!

Ответы [ 3 ]

6 голосов
/ 23 июля 2010

Вы можете попробовать

^((?!ajax).*)
3 голосов
/ 23 июля 2010

Быть буквальным по вашему запросу.Регулярное выражение, которое возвращает true для всех строк, которые не начинаются с ajax/:

^(?!ajax/).*

Вам может потребоваться экранировать / как \/.(?!) является отрицательным прогнозным выражением, объясненным по этому вопросу .

0 голосов
/ 23 июля 2010

Я думаю, ^(?<!ajax)\/ справится.

Я подчеркиваю "думаю"!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...