2009-05-13 8 views

Répondre

23

J'utilise ceci pour trouver Guids

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

Eh bien, en supposant que ça va toujours être dans la norme Notation GUID comme ça, si l'expression régulière suivante correspond à un GUID. Vous devez également appliquer la méthode de votre langue pour la rendre insensible à la casse.

[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}) 

correspondra à l'un hexagone au format 8-4-4-4-12 qui vient devant un @

10

Une variante paresseuse serait

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

Il est facile à lire et je parie qu'il correspond à 99,99% de tous les cas;) Mais alors dans 0.00001% de tous les cas, Sombody pourrait avoir un e-mail adresse qui correspond à un schéma GUID.

0

il y a aussi une façon en une seule ligne pour obtenir 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