正则表达式字符串guid

时间:2015-01-07 19:05:40

标签: c# regex

我是一名正则表达式新手,我想将以下方法转换为正则表达式以遵循最佳做法:

public static string StringifyGUID(string strGUID)
    {
        ///TODO: Regex function
        string stringifiedGUID = Regex.Replace(strGUID, "[{}]", "");
        string stringifiedGUID2 = stringifiedGUID.Replace("-", "");
        string stringifiedGUID3 = stringifiedGUID2.ToLower();
        return stringifiedGUID3;
    }

另外请告诉我是否有任何好的正则表达式工具我可以帮助我学习。非常感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:4)

您在这里不需要正则表达式 - 您可以使用Guid.ParseGuid.ToString轻松解决此问题:

public static string StringifyGuid(string s)
{
    var guid = Guid.Parse(s);
    return guid.ToString("N");
}

ToString("N")指定您只想要没有分隔符的数字as explained on MSDN

要回答第二个问题,http://www.regular-expressions.info有许多深入的信息和教程可以帮助您学习,而https://regex101.com将帮助您理解,测试和构建正则表达式。

答案 1 :(得分:0)

最快的方法是结合Substrin方法和StringBuilder类:

// Example of GUID to checking:
// {6F9619FF-8B86-D011-B42D-00CF4FC964FF}

var result = new StringBuilder();
result.Append(source.Substring(1, 8));
result.Append(source.Substring(10, 4));
result.Append(source.Substring(15, 4));
result.Append(source.Substring(20, 4));
result.Append(source.Substring(25, 12));
return result.ToString();

你不需要正则表达式完成这个简单的任务。

答案 2 :(得分:0)

不是Dot-Net专家,但您应该可以使用一个正则表达式进行替换。

Regex.Replace(strGUID, "[{}-]+", "");