c# - 使用正则表达式使用捕获组多次匹配

标签 c# regex match

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

相关文章:

arrays - 在 ElasticSearch 中从数组中删除元素/对象,然后匹配查询

c# - 是否可以在使用 SalesForce Soap API 插入之前向自定义对象添加附件?

Python - 从字符串中提取数字和逗号(使用 re.sub)

javascript - Tampermonkey 匹配所有子目录

python - 当信息不存在时,是否可以使用 findall - 正则表达式附加 None 或任何值

java - 如何限制正则表达式中的负向前瞻

在 char* 数组中查找 char* 类型的 c++ 程序

c# - 我的网络配置文件 : 有问题

c# - 从 WinForms 窗体显示 WPF 窗口绝对安全吗?

c# - 如何继承通用窗体并在 Visual Studio 设计器中打开它?