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

PHP-预匹配和;未知修饰语";错误

PHP-预匹配和;未知修饰语";错误,php,regex,preg-match,ereg,Php,Regex,Preg Match,Ereg,我做了一个很好的测试: if (ereg("([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $dateToTest, $tab) == false) 由于ereg已被弃用,我已将该测试替换为以下测试: if (preg_match("/([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})/"

我做了一个很好的测试:

if (ereg("([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $dateToTest, $tab) == false)
由于ereg已被弃用,我已将该测试替换为以下测试:

if (preg_match("/([0-9]{2})[-./]([0-9]{2})[-./]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})/", $dateToTest, $tab) == false)
但我得到了以下错误:

Warning: preg_match() [function.preg-match]: Unknown modifier '.' in ..................

问题是什么?我可以如何解决它?

表达式中有未替换的斜杠。将
/
更改为
\/
,或者使用不同的分隔符(如
@
)来启动表达式。

问题在于分隔符
/
,因为您在regexp中再次使用它

您必须将其转义为
\/
或使用另一个分隔符,如
@

if (preg_match("@([0-9]{2})[-/.]([0-9]{2})[-/.]([0-9]{4})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})@", $dateToTest, $tab) == false)

请参见中的示例#3。还有一本关于的手册。

错误在这里。
/。
。我不知道这个regexp是什么意思,所以你可以把它改成
\。

这似乎很明显:我测试了一个日期时间格式,它可以有3个日期分隔符:[-./]@Oliver哦,对不起。我的工作日结束了:)我在文档中添加了一个关于分隔符的链接。