Php 日期正则表达式出现错误
我整天都在用我的日期正则表达式。。。 我希望日期格式为YYYY-MM-DDPhp 日期正则表达式出现错误,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
$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])$/'