1
我不是正则表达式忍者,并想知道是否有可能重构我的代码转换Sinata风格路线/:foo/:bar
到.NET风格路线/{foo}/{bar}
。下面的代码是我目前的实现,希望有一个更清洁(也许是正则表达式?)解决方案。Sinatra路由转换为.NET路由
private static string Convert(string input)
{
string output = "/";
var segments = input.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var segment in segments)
if (segment.StartsWith(":"))
output += "{" + segment.TrimStart(':') + "}/";
else
output += segment + "/";
if (output.Length > 1)
output = output.TrimEnd('/');
return output;
}
真棒,谢谢! – 2011-02-14 22:35:31