Регулярное выражение для получения подсказки по электронной почте

Попытка выяснить шаблон Regex для соответствия, если письмо содержит Guid, например

[email protected]

Руководство может потенциально находиться где угодно до @, например.

[email protected]

Ответы

Ответ 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);

Ответ 2

ленивым вариантом будет

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

Легко читать, и я уверен, что он соответствует 99,99% всех случаев;) Но тогда в 0,00001% всех случаев у кого-то мог быть адрес электронной почты, который соответствует схеме GUID.

Ответ 3

Ну, полагая, что это всегда будет в стандартной записи GUID, как это, если следующее регулярное выражение совпадает с GUID. Вы также должны применить свой языковой метод, чтобы сделать его нечувствительным к регистру.

[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}[^@]*@

Ответ 4

^[^@]*([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, который предшествует @

Ответ 5

есть один путь в одной строке, чтобы получить 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