2011-08-13 76 views
0

我想從文本變量中提取日期。PHP正則表達式 - 不工作..應該是

我創建了提取日期的「最」格式的正則表達式如下:

$regexp = '#[0-9]{2,4}[-\/ ]{1}([A-Za-z]{3}|[0-9]{2})[-\/ ]{1}[0-9]{2,4}#'; 
preg_match_all($regexp, $output, $dates); 

但是,它沒有解壓格式08 2012' 年8月的日期,我不知道爲什麼。至於據我可以告訴。應該..

現在我已經插入一個單獨的正則表達式,其工作原理:

$regexp = '#[0-9]{2}[ ]{1}[A-Za-z]{3}[ ]{1}[0-9]{4}#'; 
preg_match_all($regexp, $output, $dates); 

其本質上是一樣..

然而,當我只需要一個正則表達式時,似乎沒有多少正則表達式。

如果有人可以告訴我爲什麼第一個正則表達式不適用於這種格式,並解釋爲什麼,將不勝感激。

感謝

+3

我認爲第4個符號(/)不應該在那裏。 – Patrik

+1

看起來有效,可以嘗試[ - \/\ s]而不是[ - \ /]。不知道它是否能解決問題 – Sparky

+0

對不起,這不是 - 錯別字。 –

回答

2

那麼,你的正則表達式是你提出的日期格式正確無誤。正因爲如此,它也沒有問題:http://ideone.com/XxdKV

+0

嗯..謝謝你 - 我完全失去了爲什麼它不工作..我會繼續關注它,但如果任何人有什麼建議,以什麼可能會導致這樣的問題,將不勝感激。 。 –

+0

很明顯,你的輸入字符串有些奇怪。如果您將其添加到您的問題中,也許我們可以幫助您。 – Chronial

+0

關於回顯變量,它只是輸出「Creation date:01 Aug 1998 04:00:00」 - 我想簡單地提取1998年8月1日的位..我看不到問題..? –

相關問題