您好我有一些日期格式字符串,我想找出那些不是以“ 2012 ”开头的那些使用正则表达式(在R中)。我试过了grep("^[^2012]",dataset)
但它没有用。而且我也试过了grep("^[^2][^0][^1][^2]",dataset)
但仍然无效。这个问题的模式是什么?感谢您的帮助。
答案 0 :(得分:4)
您可以在!
前面使用grepl
:
x[ !grepl("^2012", x) ]
grep("^[^2012] , ...)
会拒绝任何以这些数字开头的值。 (我不确定为什么第二个不起作用。)Gustav的建议只有在指定perl = TRUE时才有效:
x[ grep("^(?!2012)", x, perl=TRUE) ]
答案 1 :(得分:3)
不确定R的正则表达式是否支持此功能,但通常可以执行以下操作:
"^(?!2012)"
答案 2 :(得分:3)
grep
也有invert=TRUE
选项:
x <- c("2012out", "2include")
grep("^2012",x,invert=TRUE)
#[1] 2
grep("^2012",x,invert=TRUE,value=TRUE)
#[1] "2include"