2016-09-28 9 views
1

У меня есть регулярное выражение, которое удалит .php с конца URL:Regex модели матча с конкретной disqualifier

^(.*)\.php$

это будет соответствовать www.mysite.com/something.php с первым захватом группа является www.mysite.com/something

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

www.mysite.com/exclude.php ->www.mysite.com/exclude.php

, но и для любого другого пути, он должен удалить его:

www.mysite.com/anythingelse.php ->www.mysite.com/anythingelse

ответ

1

Вы можете использовать отрицательный для просмотра назад исключая текст перед .php:

^(.+)(?<!\/exclude)\.php$ 

RegEx Demo

(?<!\/exclude) отрицательный утверждать, просмотра назад, если отказ .php предшествует /exclude