如何使用正则表达式找到字符串 NOT 以 "2012" 开头?



嗨,我有一些日期格式的字符串,我想用正则表达式(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"

最新更新