求一个邮件地址解析方案,能够解析各种格式的邮件地址

梁大帅 发布于 2013/12/12 13:33
阅读 353
收藏 0

 请问一个邮件地址的解析方案。

 xxxx@126.com

   xxx@sina.cn.com

这样的也能很好的分离

加载中
0
旧城的骁珖
旧城的骁珖
$qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
$dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
$atom  = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
$pair  = '\\x5c[\\x00-\\x7f]';
$domain_literal = "\\x5b($dtext|$pair)*\\x5d";
$quoted_string  = "\\x22($qtext|$pair)*\\x22";
$sub_domain     = "($atom|$domain_literal)";
$word           = "($atom|$quoted_string)";
$domain         = "$sub_domain(\\x2e$sub_domain)*";
$local_part     = "$word(\\x2e$word)*";

$expression     = "/^$local_part\\x40$domain$/D";

并且 checkdnsrr(preg_replace('/^[^@]++@/', '', $email), 'MX')

梁大帅
梁大帅
挺复杂的,我想要获取这个地址里面的各个内容信息 比如 xxx@126.com 我想获取它的xxx 126 .com这几个东西就好了
0
南湖船老大
南湖船老大
public static List<String> preg_match_all(final String source, final String regex) {
		List<String> result = new ArrayList<String>();
		Matcher matcher = Pattern.compile(regex).matcher(source);
		matcher.matches();
		for (int i = 0; i <= matcher.groupCount(); i++) {
			result.add(matcher.group(i));
		}
		return result;
	}
public enum Vali {
	EMAIL("(?i)^[_a-z0-9\\-]+([._a-z0-9\\-]+)*@[a-z0-9\\-]+([.a-z0-9\\-]+)*(\\.[a-z]{2,4})$")
}



返回顶部
顶部