2011-10-22 126 views
2

我試圖從下面一行使用單個regEX檢索日期。下面字符串中的日期和時間可以更改。有沒有辦法REGEX這個信息。

My Birthday is: Thu Jan 12 23:59:59 GMT 2012. 

如果我用這個表達式

(?<=My Birthday is:).+?(?=\.) 

它會給我這個。

Thu Jan 12 23:59:59 GMT 2012 

但是我正在尋找這個..

Thu Jan 12 2012 

我將如何實現這一目標有與.NET

+2

如果您可以控制此文本的_generation,請考慮使用具有所需格式的日期格式化程序。如果您必須按照給定的方式處理字符串,則可以將這兩個部分重新組合,並將它們放在一起,或者取出已提取的字符串並從中間刪除時間部分。 –

+0

謝謝Ray,我將這個日期格式化程序應用到它,「ddd MMM dd HH:mm:ss GMT yyyy」,正如你所建議的那樣,它運行得非常好。 – Henry

回答

5

工作正則表達式一個正則表達式語句,你看起來是後像這樣:

^My Birthday is: (\w{3} \w{3} \d\d) \d\d:\d\d:\d\d \w{3}(\d{4})\.$ 

然後,您只需要通過引用它們的re來加入兩個捕獲的組spective索引。我不知道.NET,但它會看起來像這樣在JavaScript:

text.replace(/(\w{3} \w{3} \d\d) \d\d:\d\d:\d\d \w{3}(\d{4})\.$/, '$1$2') 

的一件事,你可能需要在正則表達式改變的是第一\d\d,這取決於如何1-9顯示。如果他們顯示爲1-9(而不是01-09),則需要使用\d\d?

相關問題