繁体   English   中英

使用模式进行部分字符串匹配

[英]Partial string matching using patterns

我需要在 R 中编写一个查询来匹配列名中的部分字符串。 我正在寻找类似于 SQL 中的 LIKE 运算符的东西。 例如,如果我知道字符串的开头、中间或结尾部分,我会按以下格式编写查询:

LIKE 'beginning%middle%' 

在 SQL 中,它将返回匹配的字符串。 pmatchgrep ,我似乎只能指定 'beginning' 、 'end' 而不是顺序。 我正在寻找的 R 中是否有类似的功能?

例如,假设我正在查看向量:

y <- c("I am looking for a dog",
       "looking for a new dog", "a dog", "I am just looking")

假设我想编写一个选择"looking for a new dog"的查询,我知道字符串的开头是"looking" ,字符串的结尾是"dog" 如果我执行grep("dog",y)它将返回1,2,3 有什么办法可以在grep指定开始和结束吗?

grep函数支持正则表达式,使用正则表达式,您几乎可以匹配任何内容

y<- c("I am looking for a dog", "looking for a new dog", "a dog", "I am just looking")
grep("looking.*dog",y, value=T)
# [1] "I am looking for a dog" "looking for a new dog" 

下面这个模式看上去对looking再“或许真的”,然后dog 所以这应该做你想做的。

在正则表达式中, ^指定字符串的开头, $指定结尾,因此:

y<- c("I am looking for a dog", "looking for a new dog", "a dog", "I am just looking")
grep("^looking.*dog$", y)
[1] 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM