我正在尝试使用正则表达式匹配从 mvc 路由中获取可选参数列表,并将值动态注入(inject)到已使用变量的持有者中。请参阅下面的代码。不幸的是,样本没有找到这两个值,而是重复了第一个值。谁能提供任何帮助?
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}
我希望到达的地方
{route:value1}
{route:value2}
最佳答案
我对 C# 一无所知,但如果您将量词放在右括号之后可能会有所帮助,不是吗?
更新: That post可能对你有帮助。
关于c# - 使用正则表达式使用捕获组多次匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986157/