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哦,对不起。我的工作日结束了:)我在文档中添加了一个关于分隔符的链接。