我正在查看字符串,以格式爲mm/dd/yyyy,m/d/yyyy,m/dd/yyyy或mm/d/yyyy的格式來提取2個日期值。我如何將該條件添加到我的正則表達式?如何在Regex中檢查多種日期格式?
private static readonly Regex dateRegex = new Regex(@"\d{2}/\d{2}/\d{4}");
我正在查看字符串,以格式爲mm/dd/yyyy,m/d/yyyy,m/dd/yyyy或mm/d/yyyy的格式來提取2個日期值。我如何將該條件添加到我的正則表達式?如何在Regex中檢查多種日期格式?
private static readonly Regex dateRegex = new Regex(@"\d{2}/\d{2}/\d{4}");
private static readonly Regex dateRegex = new Regex(@"\d{1,2}/\d{1,2}/\d{4}");
編輯:獲得初始的比賽後,嘗試使用DateTime.TryParse
以驗證它們確實是有效的日期解析。否則,你的正則表達式將需要更復雜(見傑夫熊的答案)。
你打了我幾秒鐘:-) – Toto 2010-12-07 14:56:59
使用正則表達式這樣(option1|option2)
的|
是OR。
但閱讀你的例子,我不認爲你需要它。試試這個。
(?<month>[0-9]{1,2})\/(?<day>[0-9]{1,2})\/(?<year>[0-9]{4})
在{n,m}
子句,n
是同時m
是最大數目必須匹配的最小數目。
注:有一個帖子在這裏的地方,談論使用[0-9]
代替\d
因爲\d
也可以搭配一些Unicode字符的註釋。
+1對自己的解釋`{N,M}`表達的例子這是什麼OP需要。 – Brad 2010-12-08 13:32:12
隨着 「OR」。在正則表達式 「|」:
"(regex1 | regex2)"
,如:
Regex dateRegex = new Regex(@"(\d{1,2}/\d{1,2}/\d{4}|\d{1,2}\.d{1,2}\.d{1,4})");
這將做的工作:
\d{1,2}\/\d{1,2}\/\d{4}
請發表您的字符串,其中的值是 – Mariusz 2010-12-07 14:52:42