正则表达式:在长字符串中查找Guid(带/不带短划线和有/没有分隔符)

时间:2017-07-24 19:02:07

标签: c# regex

如何创建可以识别任何格式的Guid的正则表达式?

"bd1a40db-f47c-4bad-a7f8-0d54d854f6fc";
"bd1a40dbf47c4bada7f80d54d854f6fc";
"something bd1a40dbf47c4bada7f80d54d854f6fc";
"something bd1a40db-f47c-4bad-a7f8-0d54d854f6fc";
"somethingbd1a40db-f47c-4bad-a7f8-0d54d854f6fc";
"somethingbd1a40db-f47c-4bad-a7f8-0d54d854f6fcsomething";

我一直在努力:

  

^ [{|(] [0-9A-FA-F] {8} - {3} [0-9A-FA-F] {12}〔)|}] | [{|(] ?[0-9A-FA-F] {8}([0-9A-FA-F] {4}){3} [0-9A-FA-F] {12} [)|}]?$ < / p>

但它并不适用于所有情况。 TryParse()方法仅适用于前两种情况。

请帮忙。

1 个答案:

答案 0 :(得分:6)

来自Wikipedia

  

在其规范的文本表示中,UUID的十六个八位字节   表示为32个十六进制(基数为16)的数字,以五个显示   由连字符分隔的组,格式为8-4-4-4-12,总共36个   字符

然后正则表达式将是:

{?\w{8}-?\w{4}-?\w{4}-?\w{4}-?\w{12}}?

Live demo