2012-05-20 40 views
2

我很接近,但似乎無法得到這個工作。我想實現這個轉換字符串 「1960-12- 22:00:」 這個字符串 「1960-12- 22:00:」 被找到的地方,其中兩個數由0開頭,然後剝離0簡單的正則表達式替換R

我已經得到了正則表達式的工作:

txt <- "1960-12-031 22:00:010" 
gsub("(0+[0-9]{2})", "\\1", txt, perl=TRUE) 

我似乎無法弄清楚如何處理「\\ 1」嗎去掉第一個字符。

任何援助,將不勝感激 -

+0

我不認爲應該有先零後+數字中的匹配零。 –

回答

2
txt <- "1960-12-031 22:00:010" 
gsub("0+([0-9]{2})", "\\1", txt, perl=TRUE) 

注意,這將取代031,0031,00031等與31如果你只想刪除第一個零,使用"0{1}([0-9]{2})"

更新:正如我們推薦的評論,你可以使用"[\\D]0+([0-9]{2})"以避免諸如2012年

+0

這就像一個魅力。我真的很感激你花時間去做一個新手正則表達式問題。 – user1566

+1

它也將用2012年(2012年)取代(年份),所以你可以考慮在你的模式中使用並捕獲'-'或':':'gsub(「([: - ])0([0-9] {2 })「,」\\ 1 \\ 2「,txt,perl = TRUE)' – flodel

+0

@ flodel好點。更新。 –