使用preg_match创建正则表达式

时间:2010-11-15 04:49:58

标签: php regex preg-match

我想为下面的字符串创建一个正则表达式。 动态部分(即所需表达式以粗体显示)


邮件系统

**email address**: host mx2.hotmail.com[65.55.92.152] said:
550 Requested action not taken:
**mailbox unavailable** (in reply to RCPTTO command)

基本上我希望我的正则表达式搜索电子邮件和“邮箱不可用”。

因此,它将首先搜索邮件,然后搜索字符串“mailbox unavailable”。

我该怎么做?我需要使用preg_match php函数。


修改

其实我正在做代码来查找退回的邮件。我正在放置完整电子邮件的源代码以匹配。我的一封电子邮件给出了上述错误。所以我需要检查电子邮件代码中是否包含该错误。如果找到该代码,那么它将相应地返回错误。因此,在该错误消息中,动态部分是电子邮件地址,方括号中的ip和字符串邮箱不可用。

2 个答案:

答案 0 :(得分:0)

单独使用电子邮件地址的正则表达式可以让您了解您要实现的复杂性:

http://fightingforalostcause.net/misc/2006/compare-email-regex.php

答案 1 :(得分:0)

您可以使用这些表达式:

preg_match("/[<]\S+@\S+[>]/i",$your_string); // this matches: <info@example.com>

preg_match("/mailbox unavailable/i",$your_string) // this matches: mailbox unavailable

最后一次斜线后的i代表不区分大小写。