我有一個正則表達式匹配日期格式,如:26 August 2011
我試圖讀取文件中的每一行並捕獲包含上述格式的日期的行。但它似乎並不奏效:搜索文件內容的正則表達式匹配
Regex test = new Regex(@"^((31(?!\ (Feb(ruary)?|Apr(il)?|June?|(Sep(?=\b|t)t?|Nov)(ember)?)))|((30|29)(?!\ Feb(ruary)?))|(29(?=\ Feb(ruary)?\ (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])\ (Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\b|t)t?|Nov|Dec)(ember)?)\ ((1[6-9]|[2-9]\d)\d{2})$");
StreamReader file = new StreamReader(outputFile);
while ((line2 = file.ReadLine()) != null)
{
lines.Add(line2);
foreach (Match match in test.Matches(line2))
{
v += match.Value;
}
}
好了,所以這是該方案..
月1日 - 如果行包含:「2011年8月26」,它返回日期。
2nd - 如果行包含:「一些文本等2011年8月26日」,則返回null。
任何想法如何解決這個問題?
通過給'test'一個更合適的值呢? – Jon
我已經添加了正則表達式測試。 –
我真的很喜歡Regex是多麼直觀。 – jim