Regex R中的正则表达式:查找精确数

Regex R中的正则表达式:查找精确数,regex,r,string-matching,Regex,R,String Matching,这是在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 ot 2265的条目……等等 谢谢这是一份工作和/或: (?!

这是在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 ot 2265的条目……等等

谢谢

这是一份工作和/或:

(?!\d)
表示“断言当前位置后的数字不可能匹配”。

我认为这篇文章可能有一些用处

在搜索字符串的开始(^)和结束($)处使用锚定将限制grep返回与搜索字符串完全匹配的结果

grep("^AB22$", "AB22" ,"AB22","AB22".....
您可以使用以下选项:

grep("AB22[^0-9]|AB22$", c("AB22" ,"AB22","AB22" ,"AB22+3" ,"AB226AEM+1","AB22AEM+2") , value=T)
或更短:

grep("AB22([^0-9]|$)", c("AB22" ,"AB22","AB22" ,"AB22+3" ,"AB226AEM+1","AB22AEM+2") , value=T)

如果需要,您可以在开始时添加开始锚。

非常感谢您及时回复Tim。但我也希望AB22AEM+2作为输出,因为它有AB22。您是很棒的Tim!谢谢:)
grep("AB22([^0-9]|$)", c("AB22" ,"AB22","AB22" ,"AB22+3" ,"AB226AEM+1","AB22AEM+2") , value=T)