首页 > 解决方案 > 匹配 URL 路径 A+ 或 B+ 但不匹配 AX+

问题描述

我不擅长正则表达式,需要就以下问题得到答案。

我正在尝试匹配/不匹配我需要匹配 /appA 或
/appB的 URL 路径

但不匹配 /appA/download

这在 Apache 代理中用于识别要为其设置身份验证规则的 url。

(^\/(appA|appB))

几乎可以工作,但包括来自 /appA/Download 的 /appA

我不能使用(^\/(appA|appB)$),因为这会消除所有其他以 /appA 或 /appB 开头的 URL。

我正在寻找的是与 /appA 或 /appB 匹配的正则表达式

/appA
/appA/something
/appB
/appB/something

当 /download 跟随时与 /appA 不匹配。

/appA/download
/appA/downloadsomething

标签: regex

解决方案


尝试以下模式:

^\/(app[AB])(?!\/download).*

它使用负前瞻来检查download.

您可以在 https://regexr.com/4mqah看到它的演示。


推荐阅读