尝试过滤掉某些特定的电子邮件地址。我运行一个返回数据的查询
smtp:email@email.local
X400:C=GB;A= ;P=TRACK;O=Exchange;
SMTP:email@email.com
smtp:Email.4c1f4d8b-8179-4148-93bf-00a95fa1e042@email.com
X400:c=GB;a= ;p=TRACK;o=Exchange;s=Email.4c1f4d8b-8179-4148-93bf-0;
smtp:Email.4c1f4d8b-8179-4148-93bf-00a95fa1e042@email.co.uk
smtp:Email.4c1f4d8b-8179-4148-93bf-00a95fa1e042@email.local
X400:c=GB;a= ;p=TRACK;o=Exchange;s=Mailbox D919BA05-46A6-415;
SMTP:Mailbox{D919BA05-46A6-415f-80AD-7E09334BB852}@email.com
smtp:Mailbox{D919BA05-46A6-415f-80AD-7E09334BB852}@email.co.uk
smtp:Mailbox{D919BA05-46A6-415f-80AD-7E09334BB852}@email.local
我需要返回的是"正常"电子邮件地址。所以从上面我需要返回
smtp:email@email.local
SMTP:email@email.com
首先,我需要摆脱任何不以smtp / SMTP开头的东西。异常电子邮件地址在@符号前有3个或连字符。我以为我可以用它来摆脱糟糕的电子邮件地址。
我尝试过那种有用的东西,但我认为这不是最好的。我拥有的是
/smtp:\w+(-\w+)?@.*/im
什么是从我的列表中获取好电子邮件地址的最佳方式?
由于
答案 0 :(得分:1)
看看这对你的真实案例是否有效:
<MyAttributes>
<MyAttribute User = "CLASS_FROM_1" System = "CLASS1FROM"/>
<MyAttribute User = "CLASS_FROM_2" System = "CLASS2FROM"/>
<MyAttribute User = "CODE_FROM_2" System = "CODE2FROM"/>
</Attributes>
答案 1 :(得分:1)
如果您想要捕获所有兼容RFC 822的电子邮件地址,请考虑使用此正则表达式:
/smtp:([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\"(\\n|(\\\\\\r)*([^\"\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*\")(\\.([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\"(\\n|(\\\\\\r)*([^\"\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*\"))*@([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\\[(\\n|(\\\\\\r)*([^][\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*])(\\.([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\\[(\\n|(\\\\\\r)*([^][\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*]))*/im
这意味着您的代码看起来像这样:
$pattern = "/smtp:([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\"(\\n|(\\\\\\r)*([^\"\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*\")(\\.([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\"(\\n|(\\\\\\r)*([^\"\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*\"))*@([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\\[(\\n|(\\\\\\r)*([^][\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*])(\\.([^][()<>@,;:\\\\\". \\x00-\\x1F\\x7F]+|\\[(\\n|(\\\\\\r)*([^][\\\\\\r\\n]|\\\\[^\\r]))*(\\\\\\r)*]))*/im";
preg_match_all($pattern, $emails, $matches);
var_dump($matches[1]);