是否有R函数可以在字符向量中找到RegeXP匹配的索引



我正在寻找一个像 match一样起作用的R函数,仅用于正则表达式匹配而不是均等。换句话说,如果我有一个可变的 r,它是正则表达式的字符向量和一个是字符向量的变量x,我希望该函数返回数字向量的长度与r相同的长度,该长度与每个正则表达式,对于每个正则表达式,与正则表达式匹配的第一个元素的索引。请注意,我不希望在正则表达式匹配的字符串中的位置。我想要与每个正则表达式匹配的元素的索引。

您只是在寻找 grep

x <- c("arm","foot","lefroo", "bafoobar")
r <- c("ar","^ba","$m","foo")

获取第一个正则匹配索引:

sapply(r, function(y) grep(y,x)[1])
 ar ^ba  $m foo 
  1   4  NA   2 

获取所有正则匹配索引:

sapply(r, function(y) grep(y,x))
$ar
[1] 1 4 # returns matches of ar in x
$`^ba`
[1] 4
$`$m`
integer(0)
$foo
[1] 2 4

最新更新