我已經在這個超過沒有成功一個小時,和它做我的頭英寸正則表達式匹配零次或一次一個字符串
我試圖讓這個字符串相匹配的正則表達式{日期HH:MM:ss},但這裏有個竅門,HH,MM和SS是可選的,但它必須是「HH」,而不僅僅是「H」(同樣的事情適用於MM和SS)。如果出現單個「H」,則該字符串不應匹配。
我知道我可以使用H {2}來匹配HH,但我似乎無法使用該功能加上?匹配零次或一次(零是因爲它是可選的,最多一次)。
到目前爲止,我這樣做(這顯然是不工作):
Regex dateRegex = new Regex(@"\{Date H{2}?:M{2}?:s{2}?\}");
請幫助我,併爲noob問題抱歉。
FB。
下一個問題,現在我已經匹配了第一個字符串,我只想把HH:MM:ss部分放在另一個字符串中(這將是TimeStamp對象的格式)。
我用同樣的方法,像這樣:
Regex dateFormatRegex = new Regex(@"(HH)?:?(MM)?:?(ss)?");
但當我嘗試在 「{日期HH:MM}」 我沒有得到任何比賽,爲什麼?
編輯:如果我添加這樣的空間Regex dateFormatRegex = new Regex(@" (HH)?:?(MM)?:?(ss)?");
我有結果,但我不想要空間... 我認爲第一個圓括號需要轉義,但(在此不起作用情況下,我猜是因爲它不是一個parenthese那就是字符串匹配,但一個關鍵字符的一部分。
我正在爲文件重命名目的的自定義小「語言」更多信息這第二個輸入,日期在這裏並不是指DateTime對象,而是包含在自定義對象中的日期。 – 2011-04-26 22:29:18
這對主要字符串完美工作,看到我的更新問題,發生後,一個非常類似的問題。 – 2011-04-26 22:44:40
無論如何,使用.NET庫可能是值得的。 – ThiefMaster 2011-04-27 06:13:56