Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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_Date_Format - Fatal编程技术网

Php 日期正则表达式出现错误

Php 日期正则表达式出现错误,php,regex,date,format,Php,Regex,Date,Format,我整天都在用我的日期正则表达式。。。 我希望日期格式为YYYY-MM-DD $date_regex ='^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$'; if (preg_match($date_regex, $dateString)) { echo "good format"; } 总是给我错误 preg_match()[function.preg match]:在第19行的test

我整天都在用我的日期正则表达式。。。 我希望日期格式为YYYY-MM-DD

$date_regex ='^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$';

if (preg_match($date_regex, $dateString)) {
        echo "good format";
    }
总是给我错误

preg_match()[function.preg match]:在第19行的test.php中找不到结尾分隔符“^”


有人帮忙吗??非常感谢

您需要将正则表达式包装在一对分隔字符中。此外,还需要使用
\
对角色类中的破折号进行转义

试试这个(我用
#
作为分隔符):


您需要包含/s,否则正则表达式会认为您使用^

'/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/'

问候

AAh BoltClock击败了我,并给出了一个更好的引导答案:如果你使用
/
,你需要避开正则表达式中的其他
/
,这样PHP就不会过早地结束正则表达式。特别是在字符类中(也转义破折号):[\-\/.]也试图加粗相关的/s,但代码位没有将它们取出来:sYep在Perl中是相同的,非常习惯于在正则表达式中编写\/s,
'/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/'