我想为下面的字符串创建一个正则表达式。动态部分(即所需表达式以粗体显示)
邮件系统
电子邮件地址:主持人mx2.hotmail.com [65.55.92.152]说:
550未采取请求的行动:
邮箱不可用(回复RCPTTO命令)
基本上我希望我的正则表达式搜索电子邮件和“邮箱不可用”。
因此,它将首先搜索邮件,然后搜索字符串“mailbox unavailable”。
我该怎么做?我需要使用preg_match
php函数。
答案 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)