Cercando di capire il modello Regex in modo che corrisponda se un'email contiene un Guid, ad es.Regex per ottenere una guida da una risposta e-mail
il GUID potrebbe potenzialmente essere ovunque prima della @, ad esempio
Cercando di capire il modello Regex in modo che corrisponda se un'email contiene un Guid, ad es.Regex per ottenere una guida da una risposta e-mail
il GUID potrebbe potenzialmente essere ovunque prima della @, ad esempio
Io lo uso per trovare 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);
Bene, ammesso che sia sempre sarà nella norma Notazione GUID del genere, se la seguente espressione regolare corrisponde a un GUID. Dovresti anche applicare il metodo della tua lingua per renderlo insensibile alle maiuscole e alle minuscole.
[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}[^@]*@
^[^@]*([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})
corrisponderà al qualsiasi esagono nel formato 8-4-4-4-12 che precede un @
Una variante artificiale sarebbe
([0-9a -f -] {36}). *? @
È facile da leggere e scommetto che corrisponde al 99,99% di tutti i casi;) Ma poi nello 0,00001% di tutti i casi di sombody potrebbe avere una e-mail indirizzo che si inserisce in uno schema GUID.
v'è anche un modo in una sola linea per ottenere il 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