Ответ 1
Я использую это, чтобы найти Гиды
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);
Попытка выяснить шаблон Regex для соответствия, если письмо содержит 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-9a-е -] {36}). * @
Легко читать, и я уверен, что он соответствует 99,99% всех случаев;) Но тогда в 0,00001% всех случаев у кого-то мог быть адрес электронной почты, который соответствует схеме GUID.
Ну, полагая, что это всегда будет в стандартной записи GUID, как это, если следующее регулярное выражение совпадает с GUID. Вы также должны применить свой языковой метод, чтобы сделать его нечувствительным к регистру.
[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})
будет соответствовать любому шестнадцатеричному в формате 8-4-4-4-12, который предшествует @
есть один путь в одной строке, чтобы получить 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