PHP регулярное выражение: как получить все адреса электронной почты в абзаце - PullRequest
0 голосов
/ 29 августа 2010

Я хочу получить все адреса электронной почты в абзаце.не могли бы вы помочь мне

Большое спасибо

Ответы [ 5 ]

2 голосов
/ 29 августа 2010

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

http://www.regular -expressions.info / email.html

Он даже имеет "Официальный стандарт: RFC 2822", поддерживающий регулярные выражения электронной почты.

0 голосов
/ 29 августа 2010
<?php
$paragraph="this is test abc@dd.com nobody@dd.co.jp testing";
$pattern="/([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)/i"; preg_match_all($pattern, $paragraph, $matches);

print_r($matches[0]);
?>
0 голосов
/ 29 августа 2010

Вы можете использовать функцию preg_match_all . Синтаксис будет выглядеть так:

//Filter our the email addresses and store it in $emails
preg_match($regexp,$text,$emails);

//Print out the array of emails
print_r($emails);

где:

  • $ regexp - это регулярное выражение для электронного письма
  • $ текст - это абзац текста
  • $ emails - это выходной массив адресов электронной почты

Регулярное выражение может варьироваться в зависимости от того, насколько оно свободно или жестко. Попробуйте создать свой собственный, чтобы он соответствовал вашим стандартам, но если у вас возникли проблемы, вы можете просто использовать регулярные выражения электронной почты Google.

P.S. Я надеюсь, что вы не планируете использовать это как спам.

0 голосов
/ 29 августа 2010

Как подсказывают другие, пожалуйста, приложите больше усилий к своим вопросам.

Следующее является очень простой реализацией того, что вы ищете. Он игнорирует некоторые типы электронной почты, но, эй, это столько же усилий, сколько вы вложили.

  $matches = preg_match_all(
    "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    $text,
    $emails
  );

$text ваш абзац. $emails - массив совпадающих значений.

0 голосов
/ 29 августа 2010

Попробуйте это: regEx: /[-.\w]+@[-.\w]+/i

...