Bil*_*ami 5 php regex email-validation
如果有一个可以处理这个问题的正确的正则表达式模式,那么从一个来自电子邮件表单"To"行的字符串中提取电子邮件地址是什么,它允许用逗号分隔地址",",分号";" ,空格或三者的任意组合.正则表达式还必须能够忽略"噪声"文本,例如,如果地址包含在"<"和">"字符中,或者在电子邮件地址旁边有实际名称.例如,从To字段中的此字符串:
"Joe Smith" <jsmith@example.com>, kjones@aol.com; someoneelse@nowhere.com mjane@gmail.com
Run Code Online (Sandbox Code Playgroud)
该模式应该能够返回以下匹配:jsmith @ example,kjones @ aol.com,someoneelse @ nowhere.com,mjane @ gmail.com
我正在使用PHP,所以如果这不能在单个正则表达式中完成,那么我肯定会对其他基于PHP的解决方案开放.
谢谢
尝试
\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}\b
Run Code Online (Sandbox Code Playgroud)
(由RegexBuddy提供)如
preg_match_all('/\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}\b/i', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];
Run Code Online (Sandbox Code Playgroud)
请注意/i修饰符使其不区分大小写.
另请参阅此问题,以解释正则表达式在字符串中查找电子邮件地址的缺点.