В настоящее время я создаю Slack-бот с использованием Laravel, и одна из возможностей заключается в том, что он может получать адрес электронной почты и отправлять ему сообщение.
Проблема в том, что адреса электронной почты (например, [email protected]
) проходят через <mailto:[email protected]|[email protected]>
из Slack.
В настоящее время у меня есть функция, которая извлекает электронное письмо из этого:
public function getEmail($string)
{
$pattern = '/[a-z0-9_\-\+][email protected][a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
preg_match_all($pattern, $string, $matches);
$matches = array_filter($matches);
return $matches[0][0];
}
Казалось, что он отлично работает с адресами электронной почты, такими как [email protected]
, однако, похоже, он работает с адресами электронной почты, такими как [email protected]
(который будет проходить через <mailto:[email protected]|[email protected]>
.
В этих случаях функция возвращает [email protected]
в качестве адреса электронной почты.
Я не очень хорошо знаком с регулярным выражением, но есть ли что-то еще, что я мог бы использовать/изменить в своем шаблоне, или лучший способ получить адрес электронной почты из строки, предоставленной Slack?