Bootstrap

匹配GUID的正则表达式

匹配 GUID(全局唯一标识符)的正则表达式可以根据 GUID 的标准格式来构建。GUID 通常是一个由 32 个十六进制数字组成的字符串,分为五组,用连字符 - 分隔。这五组的长度分别为:8-4-4-4-12。以下是几种常见格式的正则表达式示例:

标准格式 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

 

Regex

深色版本

^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

允许大写和小写字母

上述正则表达式已经允许大写和小写的十六进制字母。如果你希望明确地指定忽略大小写,可以在使用时添加 RegexOptions.IgnoreCase 选项。

包含花括号的 GUID (例如: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})

 

Regex

深色版本

^\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}$

包含括号的 GUID (例如: (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx))

 

Regex

深色版本

^$[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$$

无分隔符的 GUID (例如: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)

 

Regex

深色版本

^[0-9a-fA-F]{32}$

C# 示例代码

以下是一些在 C# 中使用正则表达式匹配 GUID 的示例代码:

匹配标准格式的 GUID
 

Csharp

深色版本

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string guidPattern = @"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$";
        string inputGuid = "550e8400-e29b-41d4-a716-446655440000";

        if (Regex.IsMatch(inputGuid, guidPattern))
        {
            Console.WriteLine("The input is a valid GUID.");
        }
        else
        {
            Console.WriteLine("The input is not a valid GUID.");
        }
    }
}
匹配包含花括号的 GUID
 

Csharp

深色版本

string guidPatternWithBraces = @"^\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}$";
string inputGuidWithBraces = "{550e8400-e29b-41d4-a716-446655440000}";

if (Regex.IsMatch(inputGuidWithBraces, guidPatternWithBraces))
{
    Console.WriteLine("The input with braces is a valid GUID.");
}
else
{
    Console.WriteLine("The input with braces is not a valid GUID.");
}
忽略大小写进行匹配
 

Csharp

深色版本

string guidPatternIgnoreCase = @"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";
string inputGuidMixedCase = "550E8400-E29B-41D4-A716-446655440000";

if (Regex.IsMatch(inputGuidMixedCase, guidPatternIgnoreCase, RegexOptions.IgnoreCase))
{
    Console.WriteLine("The mixed case input is a valid GUID.");
}
else
{
    Console.WriteLine("The mixed case input is not a valid GUID.");
}

注意事项

  • 性能:如果需要频繁匹配 GUID,请考虑将正则表达式编译成静态字段以提高性能。

     Csharp 

    深色版本

    private static readonly Regex GuidRegex = new Regex(
        @"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
        RegexOptions.Compiled);
  • 验证 GUID 版本:上述正则表达式仅验证 GUID 的格式,而不检查其版本或变体。如果你需要更严格的验证,可以参考 RFC 4122 规范并扩展正则表达式或使用其他方法。

;