使用正则表达式删除 url 参数

Removing url params using regex

我在从“:”开始从 url 中删除参数时遇到问题。我有这样的示例路径:

/foo/:some_id/bar/:id

我想存档以下结果:

/foo/bar

我试图创建一些正则表达式。我想通了:

\/:.*?\/

但是这个删除了 :some_id 但它仍然留下了 :id 部分。你能告诉我如何修改我的正则表达式以删除所有参数吗?

您的正则表达式要求 / 出现在末尾。您不能只从正则表达式中删除 / 因为 .*? 不会匹配任何东西。使用 negated character class:

\/:[^\/]+

regex demo

图案详情:

  • \/: - 匹配文字 /:
  • [^\/]+ - 匹配 / 以外的 1+ 个字符,因为 [^...] 定义了否定字符 class 匹配除 class 中定义的所有字符.