正则表达式,R(grep)中有异常

时间:2017-07-13 10:42:25

标签: r regex

使用R我想从字符串向量中获取以_XXX结尾的所有字符串,除了那些带有" Total"在_XXX之前。

mystringvector <- c("str1_XXX","str2_XXY","str3_XXX","Total_XXX")
grep("*_XXX",mystringvector,value=TRUE)

结果应仅返回str1_XXXstr3_XXX。但是如何包含Total_的例外。

1 个答案:

答案 0 :(得分:3)

您可以使用前瞻功能,启用perl选项以确保您不希望_XXX前面有Total

grep("(?<!Total)_XXX", mystringvector, value=TRUE, perl=TRUE) 
# [1] "str1_XXX" "str3_XXX"

?<表示“之前必须是什么”,!否定之后的内容(此处为“总计”)。