2009-05-13 6 views

Odpowiedz

23

Używam tego znaleźć GUID

Regex isGuid = new Regex(@"^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$", RegexOptions.Compiled); 
0

Cóż, zakładając, że zawsze będzie w standardzie Identyfikator GUID w ten sposób, jeśli poniższe wyrażenie regularne pasuje do identyfikatora GUID. Powinieneś także zastosować metodę języka, która nie uwzględnia wielkości liter.

[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}[^@]*@ 
0
^[^@]*([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}) 

dopasuje dowolny hex w formacie 8-4-4-4-12 że przychodzi przed @

10

Leniwy wariant byłby

([0-9a -f -] {36}). *? @

Jest łatwy do odczytania i założę się, że pasuje do 99,99% wszystkich przypadków;) Ale w tym przypadku w 0,00001% wszystkich przypadków sombody może mieć e-mail adres pasujący do schematu GUID.

0

jest również jednym ze sposobów w jednej linii, aby uzyskać GUID

string findGuid = "hi Aether experiment 1481de3f-281e-9902-f98b-31e9e422431f @sdfsf 1481de3f-281e-9902-f98b-31e9e422431f"; //Initialize a new string value 
var guids = Regex.Matches(Regex.Split(findGuid, "@")[0], @"(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}")[0]; //Match all substrings in findGuid