C# 确定url是否与路由匹配,如果匹配,则提取术语
我有一个很大的旧日志文件,我正试图按路径分解它 本质上,我得到的是一个路径(例如,C# 确定url是否与路由匹配,如果匹配,则提取术语,c#,asp.net-mvc-2,routing,C#,Asp.net Mvc 2,Routing,我有一个很大的旧日志文件,我正试图按路径分解它 本质上,我得到的是一个路径(例如,/questions/31415)的输入和一个所有已注册用户的列表。我想要的是一个路由和路由中指定的参数(因此,/questions/{id}/{answer}我将得到id和answers输出) 我有一个有效的解决方案,基本上是动态生成一个讨厌的正则表达式,使用命名组进行匹配和解析。我的直觉告诉我,这是一种脆弱的方法,坦率地说,必须有更好的方法,对吗?路由调试器会有帮助吗?还附带了示例代码 这与通常与spring/
/questions/31415
)的输入和一个所有已注册用户的列表。我想要的是一个路由
和路由中指定的参数(因此,/questions/{id}/{answer}
我将得到id
和answers
输出)
我有一个有效的解决方案,基本上是动态生成一个讨厌的正则表达式,使用命名组进行匹配和解析。我的直觉告诉我,这是一种脆弱的方法,坦率地说,必须有更好的方法,对吗?路由调试器会有帮助吗?还附带了示例代码
这与通常与spring/REST一起使用的PathParameterFilter非常相似。 我再也没有到源代码的链接了,但是它有一些你需要的正则表达式。
我知道这是一个老问题,但万一有人通过谷歌来到这里,我就同一个问题提出并回答了我自己的问题。你是在性能很重要的大批量中这样做,还是一次一个,你喜欢简单?@Nick-大批量,但很少。简单性和健壮性比性能更重要。我目前正在为每个日志条目动态生成正则表达式,性能可以接受。我不是100%确定,但我相信这样会对问题标题中的
/
进行编码,所以数组中的简单分块是一个选项,我确定我遗漏了一些其他因素,但它看起来像是一个.split(“/”)
是这里最简单的解决方案,你有禁止这种情况的因素吗?@Nick-我以/questions/{id}
路线为例,实际站点中有更复杂的路线。啊,明白了,我在寻找另一只鞋:)为了适应这种情况,我必须伪造一个HttpContext,这比它的价值要麻烦得多;而且可以说比我目前的解决方案更丑陋。