首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex将尾随斜杠添加到URL,除非URL后面跟着特定的子文件夹

Regex将尾随斜杠添加到URL,除非URL后面跟着特定的子文件夹
EN

Stack Overflow用户
提问于 2021-06-30 12:51:53
回答 1查看 147关注 0票数 1

如果尾随斜杠不存在,我想向特定的URL结构添加一个尾随斜杠。这个URL应该是:

代码语言:javascript
复制
/product/product-#/

另一个条件是,如果URL有后续的子文件夹,则不应该将尾随斜杠添加到URL中。这个URL应该是:

代码语言:javascript
复制
/product/product-#/subfolder/subpage

因此,下面的示例URL应该以尾随斜杠结尾:

代码语言:javascript
复制
/product/product-1 becomes /product/product-1/
/product/product-2 becomes /product/product-2/
/product/product-3 becomes /product/product-3/
/product/product-4/ remains /product/product-4/

因此,下面的示例URL不应该以尾随斜杠结尾:

代码语言:javascript
复制
/product/product-1/subfolder/1456 remains /product/product1/subfolder/1456
/product/product-2/subfolder/6789 remains /product/product-2/subfolder/6789

我的尝试这里不起作用,子文件夹后面的斜杠没有在非捕获组中注册。

代码语言:javascript
复制
\/(?!.*(?:subfolder\/[0-9]{4})$)[^\/]+$
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-30 12:56:41

使用您所显示的示例,请尝试使用以下正则表达式。

代码语言:javascript
复制
^(\/[^\/]*\/[^\/]*)\/?$

在执行url重写时,需要在替换部分使用$1/

上述regex在线演示

解释:添加了上面的详细说明。

代码语言:javascript
复制
^                   ##Matching from starting of value here.
(                   ##Starting capturing group from here.
  \/[^\/]*\/[^\/]*  ##Matching 1 slash followed by values till next slash comes.
                    ##Followed by slash and match all values till next slash comes
)                   ##Closing capturing group here.
\/?$                ##Matching optional / at the end of value here.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68195150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档