嗨,我有一些日期格式的字符串,我想用正则表达式(R)找出那些不是以"2012"开头的字符串。我试过grep("^[^2012]",dataset)
,但它不起作用。我也尝试过grep("^[^2][^0][^1][^2]",dataset)
,但它仍然不起作用。这个问题的模式是什么?非常感谢您的帮助。
您可以在grepl
:前面使用!
x[ !grepl("^2012", x) ]
CCD_ 5将拒绝以这些数字中的任何数字开头的任何值。(我不知道为什么第二个不起作用。)Gustav的建议只有在指定perl=TRUE:时才有效
x[ grep("^(?!2012)", x, perl=TRUE) ]
不确定R的正则表达式是否支持这一点,但通常情况下您可以执行:
"^(?!2012)"
grep
也有invert=TRUE
选项:
x <- c("2012out", "2include")
grep("^2012",x,invert=TRUE)
#[1] 2
grep("^2012",x,invert=TRUE,value=TRUE)
#[1] "2include"