我試圖使用正則表達式匹配從mvc路由中獲取可選參數的列表,並動態地將值注入到已使用變量的持有者中。見下面的代碼。不幸的是,樣本沒有找到兩個值,但重複了第一個值。任何人都可以提供幫助嗎?使用正則表達式匹配多次使用捕獲組
using System;
using System.Text.RegularExpressions;
namespace regexTest
{
class Program
{
static void Main(string[] args)
{
var inputstr = "http://localhost:12345/Controller/Action/{route:value1}/{route:value2}";
var routeRegex = new Regex(@"(?<RouteVals>{route:[\w]+})");
var routeMatches = routeRegex.Match(inputstr);
for (var i = 0; i < routeMatches.Groups.Count; i++)
{
Console.WriteLine(routeMatches.Groups[i].Value);
}
Console.ReadLine();
}
}
}
此輸出
{route:value1}
{route:value1}
我在那裏hopeing得到
{route:value1}
{route:value2}
你可以測試簡化的定義:'new Regex(「({route:[\ w]})+」);'? – Renaud
雷諾,你已經解決了,謝謝。您提到的帖子顯示我應該使用匹配不匹配.... var routeMatches = routeRegex.Matches(inputstr); (var i = 0; i