嗨,我有一些日期格式字符串,我想使用正则表达式(在 R 中)找出那些不以“ 2012 ”开头的字符串。我试过grep("^[^2012]",dataset)
了,但没有用。而且我也试过grep("^[^2][^0][^1][^2]",dataset)
了,还是不行。这个问题的模式是什么?您的帮助将不胜感激。
问问题
91 次
3 回答
4
您可以!
在前面使用grepl
:
x[ !grepl("^2012", x) ]
grep("^[^2012] , ...)
将拒绝以任何这些数字开头的任何值。(我不确定为什么第二个不起作用。)Gustav 的建议仅在您指定 perl=TRUE 时才有效:
x[ grep("^(?!2012)", x, perl=TRUE) ]
于 2013-08-08T02:50:33.087 回答
3
不确定 R 的正则表达式是否支持这一点,但通常你可以这样做:
"^(?!2012)"
于 2013-08-08T02:54:59.520 回答
3
grep
也有一个invert=TRUE
选择:
x <- c("2012out", "2include")
grep("^2012",x,invert=TRUE)
#[1] 2
grep("^2012",x,invert=TRUE,value=TRUE)
#[1] "2include"
于 2013-08-08T03:20:10.660 回答