我必須使用正則表達式才能得到一年的最後兩位數字,但只有當4位數字存在時。當有4位數字時,我有以下正則表達式可以很好地工作。示例2014 - 14正則表達式獲得年份的後兩位數
^.{2}
但是,我需要這個只在4位數字出現時才起作用。當我只有2位數字時,我正在清空我的字符串。
我必須使用正則表達式才能得到一年的最後兩位數字,但只有當4位數字存在時。當有4位數字時,我有以下正則表達式可以很好地工作。示例2014 - 14正則表達式獲得年份的後兩位數
^.{2}
但是,我需要這個只在4位數字出現時才起作用。當我只有2位數字時,我正在清空我的字符串。
只需匹配四位數字並只捕獲最後兩位。
^\d{2}(\d{2})$
然後參考捕獲組#1
來訪問您的匹配結果。
哇...我不明白爲什麼我會把自己複雜得像你做的那麼簡單。因爲這是最簡單的答案。順便說一句,我認爲你應該在開頭加上'^',因爲你可以匹配123456 – 2014-09-01 16:38:52
所以很快的問題,我剛剛意識到我的模式是匹配的最後兩個是正確的,但然後它取代了它們,我真的需要保留最後兩個a所有的時間。有什麼想法嗎。 – 2014-09-01 16:41:09
Java,我有這個。 @Parameter(name =「pattern」,value =「(\\ d {2})\\ d {2} $」), @Parameter(name =「replacement」,value =「」), @Parameter name =「replace」,value =「all」)}), – 2014-09-01 16:47:14
你不應該因爲有4位既可以工作的正則表達式。您的正則表達式正在查找字符串開頭的任何2個字符。
試試這個:
(?<=\d\d)\d\d$
這是菲德在這個問題的答案不同,你不需要使用,隨後指捕獲組以後。只有最後兩位數字是比賽的一部分。它依賴積極的後臺。
嘗試'.. $' 看起來是這個副本: http://stackoverflow.com/questions/2511588/regular-expression-extract-last-2-character"s – 2014-09-01 16:26:30
@ HunterBrown你可以使用它嗎?我發現我的模式現在取代了最後兩個,而不是保持它們。謝謝。 – 2014-09-01 16:32:25