R中的简单正则表达式替换

时间:2012-05-20 19:12:41

标签: regex r

我很接近,但似乎无法让这个工作。我希望将此字符串“1960-12- 031 22:00: 010 ”转换为此字符串“1960-12- 31 22:00: 10 “通过找到两个数字前面加0然后剥离0的地方。

我有正则表达式工作:

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

我似乎无法弄清楚如何处理“\\ 1”以删除第一个字符。

任何帮助将不胜感激 -

1 个答案:

答案 0 :(得分:2)

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

请注意,这将用31替换031,0031,00031等。如果您只想删除第一个零,请使用"0{1}([0-9]{2})"

更新:根据评论中的建议,您可以使用"[\\D]0+([0-9]{2})"来避免在2012等数字中匹配零。