PHP - preg_match和"未知修饰符"错误

Oli*_*ver 5 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)
Run Code Online (Sandbox Code Playgroud)

并且随着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)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Warning: preg_match() [function.preg-match]: Unknown modifier '.' in ..................
Run Code Online (Sandbox Code Playgroud)

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

PiT*_*ber 8

问题是分隔符,/因为您再次在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)
Run Code Online (Sandbox Code Playgroud)

请参阅Docu中的示例#3 .还有一本关于分隔符的手册.