Учитывая, что этот текст хранится в $ text, как насчет этого:
$matches = array();
if (preg_match('/<([^>]+)>/', $text, $matches)) {
var_dump($matches[1]);
}
Что дает мне:
string 'Some@Mail.net' (length=13)
В основном я использовал довольно простое регулярное выражение, которое соответствует:
- a
<
символ
- все, что не является
>
символом: [^>]
- хотя бы один раз:
[^>]+
- захватывает его:
([^>]+)
- a
>
символ
Итак, он захватывает все, что находится между <
и >
.
Редактировать после комментариев + редактировать ОП:
Если вам нужен только адрес электронной почты, следующий за Почтовая система , вы можете использовать это:
$matches = array();
if (preg_match('/The mail system\s*<([^>]+)>/', $text, $matches)) {
var_dump($matches[1]);
}
В дополнение к тому, что я писал ранее, ожидается:
- Строка
The mail system
- Любое количество белых символов:
\s*