R - grep函数不能正确匹配

时间:2015-07-31 10:23:46

标签: r grep

简化,假设:

tst <- c("DG-c", "DG-cl")

当我使用长度(grep())用于&#34; DG-c&#34;和&#34; DG-cl&#34;我两次都应该得到1次吗?

length(grep("DG-c", tst))
[1] 2
length(grep("DG-cl", tst))
[1] 1

为什么它似乎假设模式中的所有字符都匹配x然后它是匹配的?我怎么能改变这个?

谢谢

2 个答案:

答案 0 :(得分:1)

要使用grep获得期望的结果,请考虑使用^ $锚点进行精确匹配。

^用于匹配字符串的开头。

$用于匹配字符串的结尾。

tst <- c("DG-c", "DG-cl")

length(grep("^DG-c$", tst))
#> [1] 1

length(grep("^DG-cl$", tst))
#> [1] 1

reprex package(v0.3.0)于2020-08-09创建

答案 1 :(得分:0)

grep("DG-c", tst)
[1] 1 2
length(grep("DG-c", tst))
[1] 2

length(grep("DG-c$", tst))
[1] 1