Я не Regex-Ninja, и мне было интересно, можно ли будет реорганизовать мой код для преобразования маршрутов стиля Sinata /:foo/:bar
в маршруты стиля .NET /{foo}/{bar}
. Следующий код является моей текущей реализацией для этого, и, надеюсь, есть более чистое (может быть, регулярное выражение?) Решение.
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;
}