如何从包含反斜杠的字符串中解析GUID?

时间:2019-06-03 19:06:43

标签: c#

我需要根据从Mailchimp 1.0导出api获得的文本转储中的字符串等效项来创建Guid。

guid是所有包含反斜杠\字符的字符串,例如,此处是(截断)其中之一: “ \” 9ffd2c3-6er456ds \“”

当我将guid传递给以下方法时,然后尝试Guid.TryParse时没有任何作用。

string[] values = sub.Split(',');
string rawguid = values[3];
var guid = rawguid.Replace("\\", "");
var tguid = rawguid.Trim();
var sguid = rawguid.Normalize().ToString();

如何正确将这些Guid字符串解析为Guid?

1 个答案:

答案 0 :(得分:6)

您的GUID中没有反斜杠-字符串内的转义双引号:反斜杠转义了"。使用.Replace("\"","")删除它们。

此外-您没有有效的GUID-里面有 r s -指南由32位数字组成,使用仅0-9a-fA-F


使用Guid.ParseExact的示例:

using System;

public class Program
{
    public static void Main()
    {
        var guid = Guid.ParseExact(
            "\"ab9ffd2c3-6e456daaaaaaaaaaaaaaaaa\"" // guid with masked " inside
            .Replace("-","")                        // remove all - for N
            .Replace("\"",""), "N");                // remove all \" as well

        Console.WriteLine( guid );
    }
}

获取已解析的Guid:

 ab9ffd2c-36e4-56da-aaaa-aaaaaaaaaaaa
相关问题