Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_match创建正则表达式_Php_Regex_Preg Match - Fatal编程技术网

Php 使用preg_match创建正则表达式

Php 使用preg_match创建正则表达式,php,regex,preg-match,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) 基本上,我希望我的regexp搜索电子邮件和邮箱不可用 因此,它将首先搜索邮件,然后搜索字符串mailbox unavail

我想为下面的字符串创建一个正则表达式。 动态部分,即所需表达式为粗体文本

邮件系统

**email address**: host mx2.hotmail.com[65.55.92.152] said:
550 Requested action not taken:
**mailbox unavailable** (in reply to RCPTTO command)
基本上,我希望我的regexp搜索电子邮件和邮箱不可用

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

我该怎么做?我需要使用preg_match php函数来实现这一点

编辑:


实际上,我正在编写代码来查找被退回的邮件。我把源代码的完整电子邮件匹配。我的一封电子邮件给出了上述错误。所以我需要检查电子邮件代码中是否包含该错误。如果找到该代码,它将相应地返回错误。因此,在该错误消息中,动态部分是电子邮件地址、方括号中的ip和字符串mailbox unavailable。

仅电子邮件地址的正则表达式就应该让您了解您试图实现的目标的复杂性:


您可以使用以下表达式:

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

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

最后一个斜杠后面的i表示不区分大小写。

这个问题缺乏清晰度和方向性。字符串的哪些部分是静态不变的,哪些部分每次都是动态变化的?我需要正则表达式,它可以找到包含在中的电子邮件,然后在找到字符串邮箱后再找到不可用的邮箱。希望现在清楚了。不确定你想做什么,但它是“preg_match”而不是“prag_match”不清楚。你把它弄得更混乱了。您提供的字符串中没有包含任何内容!编辑你的问题。不要添加到注释中。是否要使用preg_match的正则表达式字符串来测试电子邮件是否在邮箱不可用的情况下返回?听起来确实可以,但我想有一个更好的电子邮件特定功能我不知道这样的功能,但似乎有可能