这是在R中

grep("AB22", c("AB22" ,"AB22","AB22" ,"AB22+3" ,"AB226AEM+1","AB22AEM+2") , value=T)

给他们所有:
“AB22”,“AB22”,“AB22”,“AB22 + 3”,“AB226AEM + 1”,“AB22AEM + 2”

但是,我只需要“AB22”,“AB22”,“AB22”,“AB22 + 3”,AB22AEM + 2”,即所有包含AB22的条目,而不包含AB226或2265 ...等。

谢谢

最佳答案

这是word boundary anchors和/或negative lookahead assertion的工作:

grep("\\bAB22(?!\\d)", c("AB22" ,"AB22","AB22" ,"AB22+3" ,"AB226AEM+1","AB22AEM+2") , value=T, perl=TRUE);
(?!\d)的意思是“断言当前位置后面的数字不可能匹配”。

08-18 23:41