我的测试工作得很好:
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是什么意思,所以你可以把它改成.
或'.