Мне нужно построить регулярное выражение в C#
для сопоставления с этими примерами пар URL ниже.
// Ex 01
// Route Template : "/path/{id}/path2"
// Actual Request Path : "/path/1512312/path2"
// expected result = [match]
// Ex 02
// Route Template : "/{name}/path/path2"
// Actual Request Path : "/damon/path/path2"
// expected result = [match]
// Ex 03
// Route Template : "/path/{name}/{id}/path2"
// Actual Request Path : "/path/damon/1512312/path2"
// expected result = [match]
// Ex 04
// Route Template : "/path/{name}/{id}/path2"
// Actual Request Path : "/path/damon/path2"
// expected result = [doesn't match!!!]
Я пытался использовать это регулярное выражение, но оно не работает в нескольких случаях, таких как Пример 03 выше.
var regex = new Regex("\\{.*?\\}");
string replacedRouteTemplate = regex.Replace("/path/{name}/{id}/path2", ".");
// this result below becomes false... when matching the Ex 03 example.
bool result = Regex.IsMatch(replacedRouteTemplate , "/path/damon/1512312/path2");
// Single occurrence works fine. the IsMatch returns "true" this time.
replacedRouteTemplate = regex.Replace("/path/{id}/path2", ".");
result = Regex.IsMatch(replacedRouteTemplate, "/path/1512312/path2");
Это простой вопрос.
Я хочу, чтобы мое регулярное выражение могло соответствовать нескольким вхождениям. Какие шаблоны мне нужно добавить туда?