如何使用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=”“