我有這種格式的輸出字符串Fname Lname<[email protected]>
。我想從這裏提取電子郵件。我怎樣才能做到這一點?提取兩個字符之間的字符串
3
A
回答
10
如果你能確保該字符串格式是一致的,一個簡單的正則表達式會做的伎倆:
$input = 'Fname Lname<[email protected]>';
preg_match('~<(.*?)>~', $input, $output);
$email = $output[1];
1
使用功能,如字符串和爆炸(比正則表達式更簡單的方法,並會做的伎倆) :
<?php
$text = 'Fname Lname<[email protected]>';
$pieces = explode('<',$text);
$mail=substr($pieces[1],0,-1);
echo $mail;
?>
0
這應該打印E-mail地址:
if (preg_match("/<\S*>/", $subject, $matches)) {
echo "E-Mail address: ".$matches[0];
}
3
不要重新發明輪子。相反,使用解析器。 mailparse_rfc822_parse_addresses()
是由具有深入知識的專業人士(以及您可能遇到的可能遇到的可能的怪癖)的專業人員爲此特定任務而製作的。
實施例#1從文檔:
$to = 'Wez Furlong <[email protected]>, [email protected]';
var_dump(mailparse_rfc822_parse_addresses($to));
給出(施加溫和格式化):
array(2) {
[0] => array(3) {
["display"] => string(11) "Wez Furlong"
["address"] => string(15) "[email protected]"
["is_group"] => bool(false)
}
[1] => array(3) {
["display"] => string(15) "[email protected]"
["address"] => string(15) "[email protected]"
["is_group"] => bool(false)
}
}
+0
請注意,mailparse是不與PHP捆綁在一起的PECL擴展。否則,這是做到這一點的正確方法。 –
+0
@Tatu Ulmanen True。 'php-imap'擴展名可能存在,參見更新的答案。 – jensgram
相關問題
- 1. 提取兩個字符串之間的字符串
- 2. 提取Haskell中兩個子字符串之間的字符串
- 3. 在兩個字符串之間提取xml作爲字符串
- 4. 提取兩個字符之間的子字符串中的C#
- 5. 如何提取兩個「/」字符之間的字符串
- 6. 提取兩個字符之間的字符串
- 7. 提取兩個字符之間的字符串 - Matlab(regexp)
- 8. 從兩個字符之間的字符串中提取信息
- 9. 提取兩個字符串之間不同的字符
- 10. 提取Excel中兩個字符之間的字符串
- 11. 兩個字符串之間不同的行提取字符
- 12. 如何提取兩個管道字符之間的字符串?
- 13. 兩個字符之間的字符串提取
- 14. 如何提取兩個字符之間的字符串?
- 15. 提取兩個字符之間的所有字符串powershell
- 16. 提取字符串中兩個字符之間的子字符串PHP
- 17. 提取字符串,字符串X和字符串之間ÿ
- 18. 使用sed獲取兩個字符串之間的字符串
- 19. 獲取兩個字符串之間的字符串
- 20. 獲取兩個字符串之間的字符串?
- 21. 提取符號之間的字符串
- 22. 如何提取兩個不同字符串之間的數字
- 23. 兩個字符串之間
- 24. 在python中提取2個字符串之間的字符串?
- 25. 提取R中的其他兩個字符串之間的字符串
- 26. 使用正則表達式提取兩個字符串之間的字符串
- 27. 如何在Excel中的兩個不同字符串之間提取字符串
- 28. 使用Javascript/JQuery提取兩個字符串模式之間的子字符串
- 29. 在網站中提取兩個字符串的子串之間
- 30. 提取兩個字符串
var_dump($ output)results array(0){} – AssamGuy