с помощью какой функции можно из строки (бла бла бла [email protected] ldfjlsdfkfjkgjkldf) выташить только почту?
PHP: <?php $myString ="бла бла бла [email protected] ldfjlsdfkfjkgjkldf"; preg_match("#.*?([a-zA-Z0-9-.]+\@[a-zA-Z0-9-]+\.[a-zA-Z]{2,3}).*?#",$myString,$matches); echo $matches[1]; ?>
спс все почти так как я хотел. вот например если почта будет [email protected] или [email protected] ? тоестьу примеру PHP: preg_match("#.*?([a-zA-Z0-9-.]+\@[a-zA-Z0-9-]+\.[a-zA-Z]{3,4}).*?#",$myString,$matches); - в нем будет норм отображаться 3-х символьные домены и 4-х симвльные а в: PHP: preg_match("#.*?([a-zA-Z0-9-.]+\@[a-zA-Z0-9-]+\.[a-zA-Z]{2,3}).*?#",$myString,$matches); 4-х символьные не будут как можно например избавиться вообще от ограничения пусть выводил только то что идет до пробела, или до следующего какого либо знака.
PHP: <?php $mail = '[email protected]'; preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is', $mail, $matches); print_r($matches); /* Array ( [0] => [email protected] [1] => admin [2] => mail [3] => info ) */ ?>