我有这种格式的输出字符串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