我找到了一篇几乎可以满足我确切需求的文章。但是,它需要进行一些调整,我不太清楚。
变化1:正好X个子目录,带有拖尾 此变体假定每个子目录都以斜杠结尾。
正则表达式仅用于一个子目录 ^ / [^ /] + / $
匹配网址路径示例:/ retail /
正则表达式为两个子目录 ^ / [^ /] + / [^ /] + / $
匹配网址路径示例:/零售/服装/
我想调整这两个规则以匹配特定目录。
就我而言,我有一个站点,该站点具有多个顶级目录(产品和商店,每个目录还有两个附加子目录)。
我想创建一个仅针对/ products /以及以下3个子目录的正则表达式规则。
答案 0 :(得分:1)
我没有系统对此进行测试,但是我认为您可以使用“?”和括号将基本子匹配项中的变量sub-dirs添加到“ / products /”。
基本正则表达式为“ ^ / products / $”。 然后,要匹配0或1个子目录,您可以添加“([[^ /] + /)?” 添加其中三个,我认为您拥有正则表达式来匹配您的基数以及0到3个子目录。我认为这就是您要的。
^/products/([^/]+/)?([^/]+/)?([^/]+/)?$
等效的RE在Emacs中用于以下测试行:
/products/
/products/a/
/products/a/b/
/products/a/b/c/
与此不匹配:
/products/a/b/c/d/
如果您始终想要3个子目录,请删除“?”以添加所需的其他内容。
^/products/[^/]+/[^/]+/[^/]+/$
希望这会有所帮助!