Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用grep()/gsub()查找精确匹配_R_Regex_Word Boundary - Fatal编程技术网

如何使用grep()/gsub()查找精确匹配

如何使用grep()/gsub()查找精确匹配,r,regex,word-boundary,R,Regex,Word Boundary,这将为string中的所有三个元素提供索引。但是我想在单词“apple”上有一个精确的匹配(即我只想grep()返回索引1) 使用单词边界\b匹配单词和非单词字符之间的 string = c("apple", "apples", "applez") grep("apple", string) 或 使用锚^断言我们处于开始阶段$断言我们已经到了终点 string = c("apple", "apples", "applez") grep("\\bapple\\b", string) [1] 1

这将为
string
中的所有三个元素提供索引。但是我想在单词“apple”上有一个精确的匹配(即我只想
grep()
返回索引1)

使用单词边界
\b
匹配单词和非单词字符之间的

string = c("apple", "apples", "applez")
grep("apple", string)

使用锚<代码>^断言我们处于开始阶段<代码>$断言我们已经到了终点

string = c("apple", "apples", "applez")
grep("\\bapple\\b", string)
[1] 1
您可以将正则表达式存储在一个变量中,然后像下面那样使用它

grep("^apple$", string)
[1] 1

使用单词边界
\b
匹配单词和非单词字符之间的

string = c("apple", "apples", "applez")
grep("apple", string)

使用锚<代码>^断言我们处于开始阶段<代码>$断言我们已经到了终点

string = c("apple", "apples", "applez")
grep("\\bapple\\b", string)
[1] 1
您可以将正则表达式存储在一个变量中,然后像下面那样使用它

grep("^apple$", string)
[1] 1

为了精确匹配,最好使用
=
。此外,这将比
grep()
更快,而且显然要容易得多

paste("^",pat,"$", sep="")
[1] "^apple$"
string
[1] "apple"   "apple:s" "applez" 
pat
[1] "apple"
grep(paste("^",pat,"$", sep=""), string)
[1] 1

为了精确匹配,最好使用
=
。此外,这将比
grep()
更快,而且显然要容易得多

paste("^",pat,"$", sep="")
[1] "^apple$"
string
[1] "apple"   "apple:s" "applez" 
pat
[1] "apple"
grep(paste("^",pat,"$", sep=""), string)
[1] 1

对于精确匹配,请考虑使用<代码> >=< /> >或>代码>匹配< /COD>。对于GRUB,而不是GRIP,结合< <代码> < <代码> > >代码>=< /代码>是更好的选择,如果您不需要<代码> GRP参数,如<代码> IGONOR.CASE=Trime< /Cord>或<代码> value = Trime</C> >以进行精确匹配,考虑使用<代码> >=< /代码>匹配> <代码> >对于GUBE而不是GRUP,结合<<代码> < <代码> > >代码>=< /代码>是更好的选择,如果您不需要<代码> GRP参数,如<代码> IGONOR.CASE=Trime< /Calp>或<代码> value = Trime< /Calp> <代码> PaSTE0(“^”,PAT,“$”)。通过粘贴保存一些键入字符。无需
sep=“”
paste0(“^”,pat,“$”)
粘贴上保存一些键入字符。不需要
sep=”“