如何创建可以识别上述任何格式的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} [)|}]] $


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

请帮忙。

最佳答案

Wikipedia


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


那么正则表达式将是:

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


Live demo

10-06 14:16