具有特定取消资格的正则表达式匹配模式

Regex match pattern with specific disqualifier

我有一个正则表达式,可以从 URL:

的末尾删除 .php

^(.*)\.php$

这将匹配 www.mysite.com/something.php,第一个捕获组是 www.mysite.com/something

我想调整它以匹配所有 urls 这样一个排除特定的 url 路径。例如 "exclude.php" 不应匹配,因此保留 .php

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

但对于任何其他路径,它应该删除它:

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

您可以使用否定回溯来排除 .php:

之前的文本
^(.+)(?<!\/exclude)\.php$

RegEx Demo

如果 .php 前面有 /exclude

(?<!\/exclude) 是断言失败的否定回顾