我在R中有一个字符串向量:
mystrings <- c("S0701", "S0702", "S0703", "S0704", "S0705", "S0706", "S0707", "S0708", "S0709", "S0710", "S0711", "S0712",
"S0713", "S0714", "S07_oth")
我想使用正则表达式排除最后3个字符串。 我尝试过:
grep("S07[^oth|13]*$", mystrings, value = TRUE)
但是这会消除所有包含10、11、12、13和14的字符串。 这些也不起作用:
grep("S07[^oth | (13|14))]*$", total, value = TRUE)
grep("S07[^(oth | 13 | 14)]*$", total, value = TRUE)
grep("S07[^(oth | (13) | (14))]*$", total, value = TRUE)
grep("S07[^oth | [1-1][3-4])*$", mystrings, value = TRUE)
谢谢您的帮助!
答案 0 :(得分:6)
您几乎拥有它:
grep("oth|1[34]", mystrings, value = TRUE, invert = TRUE)
"S0701" "S0702" "S0703" "S0704" "S0705" "S0706" "S0707" "S0708" "S0709" "S0710" "S0711"
"S0712"