首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要在Rails路由约束Regex中使用\Z,但得到一个错误

需要在Rails路由约束Regex中使用\Z,但得到一个错误
EN

Stack Overflow用户
提问于 2013-05-26 16:36:14
回答 5查看 667关注 0票数 1

我需要允许一个路径来匹配以下四种格式:

  • foo
  • foo.json
  • foo.bar
  • foo.bar.json

如果一个路由以".json“结尾,那么应该匹配前面的部分,因此这四个示例的唯一可能匹配是"foo”和"foo.bar“。

我想出了以下正则表达式:/.*?(?=\.json|\Z)/,但它不能工作,因为Rails不允许您在路由约束中使用\Z

在路由要求中不允许Regexp锚字符:/.*?(?=\.json|\Z)/

有什么方法可以绕过这个或另一个正则表达式吗?

EN

Stack Overflow用户

发布于 2013-05-26 17:14:56

如果你想要得到任意的键,那就不是那么简单了:

代码语言:javascript
运行
复制
get ":foo(.:bar)", to: 'main#foo', bar: /(?!json$|html$)[^\.]*/

您应该关注的一件事是,:bar不能是json (或任何其他适当的格式)。

在您的控制器中,将有params[:foo]params[:bar]

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16761353

复制
相关文章

相似问题

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