我正在使用grepl来检测字符串是否包含子字符串。例如:
grepl("-B4","P6-B4")
显然返回True。现在我想避免在“-B4”子字符串后面有字符的情况。例如,我希望从以下内容中看到False:
grepl("-B4","P6-B41A")
你可以看到我想避免它的原因是因为4与41不同而且我不想检测41。 谢谢
答案 0 :(得分:4)
grepl("-B4$",c("P6-B41A", "P6-B4"))
#[1] FALSE TRUE
答案 1 :(得分:3)
这似乎是使用endsWith()
的最佳时机。它确定字符串是否以特定字符或一系列字符结尾。
endsWith(c("P6-B41A", "P6-B4"), "-B4")
# [1] FALSE TRUE
根据help(endsWith)
,它也比grepl()
更有效。
答案 2 :(得分:1)
另一种选择是提取最后3个字符并执行==
substr(v1, nchar(v1)-2, nchar(v1)) == "-B4"
#[1] FALSE TRUE
v1 <- c("P6-B41A", "P6-B4")