Regex 正则表达式以匹配URL中的子目录数

Regex 正则表达式以匹配URL中的子目录数,regex,Regex,我发现一篇文章几乎满足了我的确切需要。然而,它需要调整一点,我不能完全理解它 变体1:正好X个子目录,带尾随斜杠 此变体假定每个子目录以尾部斜杠结尾 仅用于一个子目录的正则表达式 ^/[^/]+/$ 匹配URL路径的示例:/retail/ Regex只用于两个子目录 ^/[^/]+/[^/]+/$ 匹配URL路径的示例:/retail/clothing/ 我想调整这两个规则以匹配特定目录 在我的例子中,我有一个站点,它有多个顶级目录(产品和商店,每个都有另外两个子目录) 我想创建一个只针对/pr

我发现一篇文章几乎满足了我的确切需要。然而,它需要调整一点,我不能完全理解它

变体1:正好X个子目录,带尾随斜杠 此变体假定每个子目录以尾部斜杠结尾

仅用于一个子目录的正则表达式 ^/[^/]+/$

匹配URL路径的示例:/retail/

Regex只用于两个子目录 ^/[^/]+/[^/]+/$

匹配URL路径的示例:/retail/clothing/

我想调整这两个规则以匹配特定目录

在我的例子中,我有一个站点,它有多个顶级目录(产品和商店,每个都有另外两个子目录)


我想创建一个只针对/products/和以下3个子目录的正则表达式规则。

我没有一个系统来测试这一点,但我认为可以使用“?”和parens在“/products/”的基本匹配上添加变量sub dirs

基本正则表达式为“^/products/$”。 然后,为了匹配0或1个子目录,可以添加“([^/]+/)?” 加上其中的三个,我想你有一个正则表达式来匹配你的基本目录加上0到3个子目录。我想这就是你想要的

^/products/([^/]+/)?([^/]+/)?([^/]+/)?$
这些测试线在Emacs中的等效重新加工:

/products/
/products/a/
/products/a/b/
/products/a/b/c/
与此不匹配:

/products/a/b/c/d/
如果您一直想要3个子目录,请删除“?”以使附加功能成为必需

^/products/[^/]+/[^/]+/[^/]+/$

希望这有帮助!

您使用的是什么regex引擎?您使用的是特定语言吗?我正在尝试在Google Analytics中实现这一点。Google Analytics似乎不支持
\{3}
。您可以提交功能请求。