如何找到字符串不要使用正则表达式以“2012”开头?

时间:2013-08-08 02:46:26

标签: regex r

您好我有一些日期格式字符串,我想找出那些不是以“ 2012 ”开头的那些使用正则表达式(在R中)。我试过了grep("^[^2012]",dataset)但它没有用。而且我也试过了grep("^[^2][^0][^1][^2]",dataset)但仍然无效。这个问题的模式是什么?感谢您的帮助。

3 个答案:

答案 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"