使用preg_match的简单正则表达式

时间:2011-09-12 09:00:13

标签: php regex

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

邮件系统

  

电子邮件地址:主持人mx2.hotmail.com [65.55.92.152]说:

     

550未采取请求的行动:

     

邮箱不可用(回复RCPTTO命令)

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

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

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

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解你的问题,但这会有效吗?

正则表达式

/email\saddress:(.*?)mailbox\sunavailable(.*)$/si

示例

<?php

$text = <<<EndText
email address: host mx2.hotmail.com[65.55.92.152] said:

550 Requested action not taken:

mailbox unavailable (in reply to RCPTTO command)
EndText;

preg_match('/email\saddress:(.*?)mailbox\sunavailable(.*)$/si', $text, $matches);
var_dump($matches);

?>

<强>输出

array
  0 => string 'email address: host mx2.hotmail.com[65.55.92.152] said:



550 Requested action not taken:



mailbox unavailable (in reply to RCPTTO command)' (length=142)
  1 => string ' host mx2.hotmail.com[65.55.92.152] said:



550 Requested action not taken:



' (length=80)
  2 => string ' (in reply to RCPTTO command)' (length=29)