我是一名正则表达式新手,我想将以下方法转换为正则表达式以遵循最佳做法:
public static string StringifyGUID(string strGUID)
{
///TODO: Regex function
string stringifiedGUID = Regex.Replace(strGUID, "[{}]", "");
string stringifiedGUID2 = stringifiedGUID.Replace("-", "");
string stringifiedGUID3 = stringifiedGUID2.ToLower();
return stringifiedGUID3;
}
另外请告诉我是否有任何好的正则表达式工具我可以帮助我学习。非常感谢任何帮助,谢谢!
答案 0 :(得分:4)
您在这里不需要正则表达式 - 您可以使用Guid.Parse
和Guid.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, "[{}-]+", "");