programing

GUID가 GUID인지 확인하는 방법

bestprogram 2023. 5. 12. 22:46

GUID가 GUID인지 확인하는 방법

문자열에 GUID가 포함되어 있는지 숫자 문자열만 포함되어 있는지 확인하는 방법입니다.

GUID는 항상 최소 1개의 알파벳 문자를 포함합니까?

이것들이 도움이 되는지 보세요:-

  1. Guid.Parse문서
Guid guidResult = Guid.Parse(inputString)
  1. Guid.TryParse문서
bool isValid = Guid.TryParse(inputString, out guidOutput)

문자열이 GUID인지 확인하기 위해 테스트할 때 필요 없는 GUID 개체를 만들고 싶지 않습니다.그래서...

public static class GuidEx
{
    public static bool IsGuid(string value)
    {
        Guid x;
        return Guid.TryParse(value, out x);
    }
}

사용 방법은 다음과 같습니다.

string testMe = "not a guid";
if (GuidEx.IsGuid(testMe))
{
...
}

이것은 출력 변수를 억제하는 상당히 깨끗한 현대적인 C# 접근 방식입니다.

var isValid = Guid.TryParse(inputString, out _);

GUID는 일반적으로 32자의 16진수 문자열로 표시되는 16바이트(128비트) 숫자입니다.GUID(16진수 형식)는 영문자를 포함할 필요가 없지만 우연히 포함될 수도 있습니다.16진수 형식의 GUID를 대상으로 하는 경우 문자열의 길이가 32자이며(대시 및 대괄호를 제거한 후) 문자 A-F와 숫자만 포함되어 있는지 확인할 수 있습니다.

특정 스타일의 GUID(대시 배치)가 있으며 정규식을 사용하여 이를 확인할 수 있습니다.

@"^(\{{0,1}([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}\}{0,1})$"

http://www.geekzilla.co.uk/view8AD536EF-BC0D-427F-9F15-3A1BC663848E.htm 에서 확인할 수 있습니다.그렇긴 하지만, GUID는 실제로 128비트 숫자이며 여러 가지 다른 방식으로 표현될 수 있다는 것을 강조해야 합니다.

GUID에 영문자가 포함되어 있다는 보장은 없습니다. FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF유효한 GUID이므로00000000-0000-0000-0000-000000000000그리고 그 사이의 모든 것.

를 사용하는 경우.NET 4.0에서는 위의 답변을 Guid에 사용할 수 있습니다.구문 분석 및 GUID.파스를 써보세요.그렇지 않으면 다음과 같은 작업을 수행할 수 있습니다.

public static bool TryParseGuid(string guidString, out Guid guid)
{
    if (guidString == null) throw new ArgumentNullException("guidString");
    try
    {
        guid = new Guid(guidString);
        return true;
    }
    catch (FormatException)
    {
        guid = default(Guid);
        return false;
    }
}
if(MyGuid != Guid.Empty) 
{
   // Valid Guid
} 
else
{
   // Invalid Guid
}

유효한 GUID이면 GUID를 반환하고, 그렇지 않으면 GUID를 반환합니다.

if (!Guid.TryParse(yourGuidString, out yourGuid)){
          yourGuid= Guid.Empty;
}

승인된 답변을 기반으로 다음과 같이 확장 메서드를 만들었습니다.

public static Guid ToGuid(this string aString)
{
    Guid newGuid;

    if (string.IsNullOrWhiteSpace(aString))
    {
        return MagicNumbers.defaultGuid;
    }

    if (Guid.TryParse(aString, out newGuid))
    {
        return newGuid;
    }

    return MagicNumbers.defaultGuid;
}

여기서 "MagicNumbers.defaultGuid"는 모두 0인 Guid "000000-0000-00000000"일 뿐입니다.

저의 경우 ToGuid 변환이 잘못되어 해당 값을 반환하는 것은 문제가 되지 않았습니다.

http://en.wikipedia.org/wiki/Globally_unique_identifier 을 참조하십시오.

알파가 실제로 존재한다는 보장은 없습니다.

GUID 생성자 표준 기능 사용

Public Function IsValid(pString As String) As Boolean

    Try
        Dim mGuid As New Guid(pString)
    Catch ex As Exception
        Return False
    End Try
    Return True

End Function

언급URL : https://stackoverflow.com/questions/6211017/how-to-validate-guid-is-a-guid