Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 正则表达式使用分隔符验证项目_Php_Regex - Fatal编程技术网

Php 正则表达式使用分隔符验证项目

Php 正则表达式使用分隔符验证项目,php,regex,Php,Regex,我使用这个正则表达式在php中基于 我的问题是如何验证由分隔符分隔的电子邮件列表的输入。 假设分隔符为,或;或者,或者 我想我应该加上那样的东西 (\s*(;|,)\s*|\s*$) 但是它不起作用…如果您只接受纯正则表达式解决方案,可能会给您一个无法使用的答案,出于以下几个原因,我建议您使用分隔符,然后继续迭代数组并依次验证每封电子邮件: 您的正则表达式和处理它的代码将被简化 您的正则表达式只需处理电子邮件的一般用例,并且可以在您需要验证电子邮件地址的任何时候作为一般的可重用操作。将rege

我使用这个正则表达式在php中基于

我的问题是如何验证由分隔符分隔的电子邮件列表的输入。 假设分隔符为,或;或者,或者

我想我应该加上那样的东西

(\s*(;|,)\s*|\s*$)

但是它不起作用…

如果您只接受纯正则表达式解决方案,可能会给您一个无法使用的答案,出于以下几个原因,我建议您使用分隔符,然后继续迭代数组并依次验证每封电子邮件:

您的正则表达式和处理它的代码将被简化

您的正则表达式只需处理电子邮件的一般用例,并且可以在您需要验证电子邮件地址的任何时候作为一般的可重用操作。将regexp操作替换为对用于电子邮件验证的库或任何其他自定义验证器的调用也很简单

这将更容易处理可能的相关需求,比如在输出中指出哪封电子邮件未能验证,或者接受所有已验证的地址并丢弃那些未验证的地址


如果您只接受纯正则表达式解决方案,可能会给您一个无法使用的答案,出于以下几个原因,我建议您使用分隔符,然后继续遍历数组并依次验证每封电子邮件:

您的正则表达式和处理它的代码将被简化

您的正则表达式只需处理电子邮件的一般用例,并且可以在您需要验证电子邮件地址的任何时候作为一般的可重用操作。将regexp操作替换为对用于电子邮件验证的库或任何其他自定义验证器的调用也很简单

这将更容易处理可能的相关需求,比如在输出中指出哪封电子邮件未能验证,或者接受所有已验证的地址并丢弃那些未验证的地址


通过模块验证电子邮件的真实性比使用短正则表达式更好。看

但幸运的是,php有一个验证器:

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "This (email_a) email address is considered valid.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "This (email_b) email address is considered valid.";
}
?>

请参见

通过模块验证电子邮件的真实性比使用短正则表达式更好。看

但幸运的是,php有一个验证器:

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "This (email_a) email address is considered valid.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "This (email_b) email address is considered valid.";
}
?>

请参见

不要使用正则表达式验证电子邮件,PHP有一个功能:


您可以修改此代码并使用它来验证多封电子邮件。

不要使用正则表达式来验证电子邮件,PHP有这样一个功能:

您可以修改此代码并使用来验证多封电子邮件

$email = 'joe@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  //valid
}else{
  //not
}