南希航线中的多个正则表达式捕获组

时间:2012-10-09 04:56:34

标签: c# iis nancy

我可能会遗漏一些明显的东西,但我正在尝试在NancyFx中定义一个使用多个正则表达式捕获组的路径。

Get[@"/campaign/(?<campaignid>[0-9]{1,8})/console(?<page>[0-9])/(?<personid>[0-9]{1,8})"]

正则表达式在正则表达式测试程序中与URL类似/campaign/12345/console1/123,但在南希,我总是得到404。

如果我将其删除,我会回到Get[@"/campaign/(?<campaignid>[0-9]{1,8})/console"],此时它会起作用,让我觉得问题可能是有多个命名组。这是否意味着按设计工作?

1 个答案:

答案 0 :(得分:2)

从技术上讲,您遇到的是一个(新)错误,因为您的中间捕获组前面有一个字符串文字。我会看一下下一篇,即将发布的内容。

幸运的是,有一个简单的解决方法,只需更新您的路径,使其看起来像这样

@"/campaign/(?<campaignid>[0-9]{1,8})/(?:console(?<page>[0-9]))/(?<personid>[0-9]{1,8})"

这会让Nancy陷入困境,但不能捕获console部分:)