.net - 正则表达式:如何获取组名

标签 .net regex

我有一个 .NET 正则表达式,它看起来类似于:

(?<Type1>AAA)|(?<Type2>BBB)

我正在对示例字符串使用 Matches 方法,例如"AAABBBAAA" ,然后遍历匹配项。

我的目标是使用正则表达式匹配组找到匹配类型,因此对于此正则表达式,它将是:
  • 类型 1
  • 类型 2
  • 类型 1

  • 我找不到任何 GetGroupName方法。请帮忙。

    最佳答案

    这是你要找的东西吗?它使用 Regex.GroupNameFromNumber 所以你不需要知道正则表达式本身之外的组名。

    using System;
    using System.Text.RegularExpressions;
    
    class Test
    {
        static void Main()
        {
            Regex regex = new Regex("(?<Type1>AAA)|(?<Type2>BBB)");
            foreach (Match match in regex.Matches("AAABBBAAA"))
            {
                Console.WriteLine("Next match:");
                GroupCollection collection = match.Groups;
                // Note that group 0 is always the whole match
                for (int i = 1; i < collection.Count; i++)
                {
                    Group group = collection[i];
                    string name = regex.GroupNameFromNumber(i);
                    Console.WriteLine("{0}: {1} {2}", name, 
                                      group.Success, group.Value);
                }
            }
        }
    }
    

    关于.net - 正则表达式:如何获取组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163344/

    相关文章:

    javascript - 单个正则表达式获取页面 URL 但从完整 URL 中排除端口号

    .net - 链接文件和添加另一个项目作为引用之间的区别?

    .net - 在 TextBlock 内对齐 TextBox

    .net - 如何编写将 System.Drawing.Bitmap 转换为字节数组的扩展方法?

    c# - 从 httpwebrequest 切换到 httpclient,我不知道如何发送我的 header ?

    regex - 如何在mongodb中搜索逗号分隔的数据

    .net - 可以在 .net 或 mvc4 中基于 signalR 的应用程序中完成 seo

    Javascript从字符串的开头和结尾删除特殊字符

    Android 可选词边界正则表达式

    python - 带有喜欢和日期的 Pandas 查询功能