试图找到漂亮网址的正则表达式

Trying to find the regex for pretty URLs

我的网站结构是这样的:

/docs/one_of_the_resources/one-of-the-resources.html
/docs/a_complete_different_resource/a-complete-different-resource.html

我想删除 url 中的所有子文件夹并得到这个:

/one-of-the-resources.html
/a-complete-different-resource.html

子文件夹不应受到影响:

/docs/one_of_the_resources/assets/*

文件夹名称始终与 html 文件相同,只是破折号与下划线交换,当然没有后缀。

我正在使用 grunt-contrib-rewrite 和 grunt-connect。

无法理解它。这可能吗?

可以使用否定字符class

/\/[^/]+$/
  • [^/]+ 匹配 / 以外的任何内容。量词 + 确保一个或多个字符。

  • $ 将正则表达式锚定在字符串的末尾。

Regex Demo

例子

string = "/docs/one_of_the_resources/one-of-the-resources.html";
console.log(string.match(/\/[^/]+$/)[0]);
// => one-of-the-resources.html