này được dựa trên phản ứng Niranjan của, giả sử bạn có email đầu vào kèm theo trong vòng < và> ký tự). Thay vì sử dụng cụm từ thông dụng để lấy địa chỉ email, ở đây tôi nhận được phần văn bản giữa các ký tự < và>. Nếu không, tôi sử dụng chuỗi để nhận toàn bộ email. Tất nhiên, tôi đã không thực hiện bất kỳ xác nhận về địa chỉ email, điều này sẽ phụ thuộc vào kịch bản của bạn.
<?php
$string = 'Ruchika <[email protected]>';
$pattern = '/<(.*?)>/i';
preg_match_all($pattern, $string, $matches);
var_dump($matches);
$email = $matches[1][0] ?? $string;
echo $email;
?>
Đây là a forked demo.
Tất nhiên, nếu giả định của tôi không đúng, thì cách tiếp cận này sẽ không thành công. Nhưng dựa trên đầu vào của bạn, tôi tin rằng bạn muốn trích xuất các email được đính kèm trong các ký tự < và>.
Bạn nên sử dụng PHPs preg * chức năng để làm như vậy. Xây dựng cụm từ thông dụng phù hợp với từng và mọi địa chỉ email không phải là một nhiệm vụ dễ dàng, hãy xem cuộc thảo luận này để biết chi tiết: http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email -address – maxhb