You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何匹配所有以.php结尾的页面,排除download.php和upload.php?

正则解决方案:匹配.php页面并排除指定文件

问题分析

你当前用的正则^(^(?!download|upload).*)\.php$有两个问题:

  • 多了一个冗余的^锚点,导致正则结构错误;
  • 负向预查仅检查字符串开头是否非download/upload,所以像somethingdownload.php这类文件会被匹配——如果这不符合你的需求,得根据实际目标调整正则逻辑。

分场景解决方案

场景1:仅排除download.php和upload.php两个精确文件

如果只想排除这两个特定文件,其他所有.php文件(包括带参数的、包含download/upload的)都要匹配,用这个正则:

^(?!(download|upload)\.php($|\?)).*\.php($|\?)
  • 逻辑说明:
    • ^(?!(download|upload)\.php($|\?)):通过负向预查排除精确匹配的download.php、upload.php,以及带参数的版本(比如download.php?id=1);
    • .*\.php($|\?):匹配所有以.php结尾(含带参数)的页面。

如果不需要匹配带参数的页面,简化为:

^(?!(download|upload)\.php$).*\.php$

场景2:排除所有以download或upload开头的.php文件

如果要排除所有以download/upload开头的.php文件(比如download-list.php、upload-test.php),但允许中间包含download/upload的文件(比如somethingdownload.php),用:

^(?!download|upload).*\.php($|\?)
  • 逻辑说明:^(?!download|upload)确保字符串开头不是download或upload,后续匹配所有以.php结尾的内容。

场景3:排除所有含download或upload的.php文件

如果要排除任何文件名里包含download/upload的.php文件(比如somethingdownload.php、upload-abc.php全排除),用:

^(?!.*(download|upload)).*\.php($|\?)
  • 逻辑说明:^(?!.*(download|upload))确保整个字符串里不出现download或upload,再匹配以.php结尾的内容。

内容的提问来源于stack exchange,提问作者jum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:55:24