2014-11-15 212 views
1

我有一個類型的字符串,包含以下字符串列表的日期範圍:識別字符串

我建的車輛於1985年

羅納德從(1901年12月5所擁有的車輛 - 1966年12月15日)在巴黎

它在12月5日打破了,2001年

我擁有這些車輛以及(馬自達RX8和豐田Prius)

要提取其中規定在車輛拋錨之日起第三根弦,我使用下面的代碼在foreach循環中,其中「一句」是循環變量

var dateString = Regex.Match(sentence, @"broke ([^\)]+)").Groups[1].ToString(); 
運行語句列表後

但是,如果我要確定第二個字符串,其中指出了括號內的日期範圍,我如何使用正則表達式來提取括號內的日期範圍? (非包含所述支架的),使得輸出是僅:

1901年12月5日 - 1966年12月15日

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

好記:)謝謝。 @JohnSaunders – Dinuka

回答

0
resultString = Regex.Match(subjectString, 
    @"(?<=\()   # Make sure the previous character is a (
    \w+\s+\d+,\s+\d+ # Match a date 
    \s*\p{Pd}\s*  # Match a dash, surrounded by optional whitespace 
    \w+\s+\d+,\s+\d+ # Match a date 
    (?=\))   # Make sure the following character is a)", 
    RegexOptions.IgnorePatternWhitespace).Value; 

將提取正是如下指定格式的日期範圍。

測試它live on regex101.com

+0

謝謝先生,但我編輯了一些問題,以便更好地闡明。如果我只想要括號中指定的日期,該怎麼辦? – Dinuka

+0

@Earthling:你的意思是正則表達式應該避免匹配'馬自達等'?你知道日期的確切格式嗎? –

+0

是的,先生它總是顯示爲:(月日,年 - 月日,年) – Dinuka