在 RegEx 中的最后一个斜杠之后获取值并忽略类别 slug
Posted
技术标签:
【中文标题】在 RegEx 中的最后一个斜杠之后获取值并忽略类别 slug【英文标题】:Grab value after last slash in RegEx and ignore category slugs 【发布时间】:2020-10-14 01:32:50 【问题描述】:我在旧网站上设置了以下格式的网址:
blog/cat1/my-post-title
blog/my-post-title
blog/my-post-title/
blog/cat1/sub-cat1/my-post-title
我正在尝试为以下格式设置 RegEx 重定向:
articles/my-post-title
不再需要类别 slug
到目前为止,我的不良尝试一直在关注,您可以看到它有缺陷:
规则 1:
blog\/(#?.*)\/(#?.*)\/(#?.*)
articles/$3
规则 2:
blog\/(#?.*)\/(#?.*)
articles/$2
规则 3:
blog\/(#?.*)
articles/$1
我们能否设置一个规则并仅抓取最后一个斜线之后的 post slug 并忽略所有类别 slug(如果有)?
【问题讨论】:
【参考方案1】:好的,我可以使用以下内容:
([^/]+\/?[blog/]2?\/)(.*?)([^/]+)/$
并获得 post slug:
articles/$3
【讨论】:
如果您的 URL 末尾有 /,上述方法有效,对于末尾没有 / 的 URL,请使用以下([^/]+\/?[blog/]2?\/)(.*?)([^/]+)$
以上是关于在 RegEx 中的最后一个斜杠之后获取值并忽略类别 slug的主要内容,如果未能解决你的问题,请参考以下文章
postgres regex_replace 第三个和最后一个正斜杠之间的所有内容