Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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函数来验证电子邮件字段。在我的PHP文件中,我收到以下错误: Warning: preg_match(): Unknown modifier '_' in C:\xampp\htdocs\validator.inc.php on line 28 我的PHP文件是: <?php define("EMAIL_MASK", "^[-!#$%&'*+/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}~])*@[a-z

我有一个PHP函数来验证电子邮件字段。在我的PHP文件中,我收到以下错误:

Warning: preg_match(): Unknown modifier '_' in C:\xampp\htdocs\validator.inc.php on line 28
我的PHP文件是:

<?php
define("EMAIL_MASK", "^[-!#$%&'*+/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}~])*@[a-zA-Z](-?[a-zA-Z0-9])*(\.[a-zA-Z](-?[a-zA-Z0-9])*)+$");

(...)

function isEmailValid($email)
{
    return !empty($email) && preg_match(EMAIL_MASK, $email); <---- This is the line raising the error
}

(...)

?>
您未能将


您需要转义
~
@casimirithippolyte:也在字符类中?@casimirithippolyte谢谢。@hakre:是的,也在字符类中。@hakre是的,一旦它找到下一个
~
符号,它就会将其视为结束分隔符。因此,我们需要转义
~
,即使字符类中存在符号。
define("EMAIL_MASK", "~^[-!#$%&'*+/0-9=?A-Z^_a-z{|}\~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}\~])*@[a-zA-Z](-?[a-zA-Z0-9])*(\.[a-zA-Z](-?[a-zA-Z0-9])*)+$~");
                      |                                                                                                                          |