2011-12-06 55 views
5

我有這樣的測試工作得很好:PHP - 的preg_match和「未知的修飾詞」的錯誤

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

和額日格已過時,我更換了這一個測試:

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

問題是什麼,我該如何解決它?

+0

可能重複的[轉換ereg表達式preg](http://stackoverflow.com/questions/6270004/converting- ereg-expressions-to-preg) – mario

回答

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) 

見的例子#3在Docu。還有一本關於delimiters的手冊。

+0

我添加了關於分隔符文檔的鏈接。 – PiTheNumber

4

表達式中有非反斜槓。請將/更改爲\/或使用不同的分隔符(例如@)來啓動表達式。

0

錯誤在這裏/.。我不知道你是什麼意思,這個正則表達式,所以你可以改變它.\.

+0

這似乎很明顯:我測試日期時間格式,可以有3個日期分隔符:[ - 。 /] – Oliver

+0

@Oliver哦,對不起。這是我工作日的結束:) – k102

相關問題