7

我的测试效果很好:

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 ..................

有什么问题,我该如何解决?

4

3 回答 3

10

问题在于分隔符/,因为您再次在正则表达式中使用它。

您必须对其进行转义\/或使用其他分隔符,例如@

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 。还有一本关于分隔符的手册。

于 2011-12-06T13:35:06.500 回答
4

您在表达式中有未转义的斜杠。更改/\/或使用不同的分隔符,例如 @开始表达式。

于 2011-12-06T13:34:09.950 回答
0

错误在这里/.。我不知道这个正则表达式是什么意思,所以你可以将其更改为.\.

于 2011-12-06T13:35:56.290 回答