我想匹配整个单词。如果你看到下面的内容,我希望grep for“is”在输出中只显示4,因为只有“这是一行”,包含整个单词“is”
我也尝试使用^和$进行搜索,如下所示,但我正在寻找一个与“is”完全匹配的字符串。它也可以包含其他单词,只要单词“is”作为单独的单词出现
> lines = c("this","this","this","this is a line")
> grep("is",lines)
[1] 1 2 3 4
> grep("^is$",lines)
integer(0)
答案 0 :(得分:4)
您希望在模式周围放置word boundaries。
grep('\\bis\\b', lines)
注意: ^
锚点断言正则表达式引擎在字符串中的当前位置是字符串的开头,$
断言位置在字符串的结尾。因此,通过实现两个锚点,您可以告诉引擎整个字符串应该匹配。