我试图使用正则表达式匹配从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