是否有一个R函数来查找字符向量中regexp匹配项的索引?

是否有一个R函数来查找字符向量中regexp匹配项的索引?,regex,r,match,Regex,R,Match,我正在寻找一个R函数,它的工作原理类似于match,只用于正则表达式匹配,而不是相等。换句话说,如果我有一个变量r,它是正则表达式的字符向量,还有一个变量x,它是字符向量,我希望函数返回一个与r长度相同的数值向量,它为每个正则表达式提供匹配该正则表达式的第一个元素的索引。请注意,我不希望正则表达式在字符串中匹配的位置。我需要与每个正则表达式匹配的元素索引。您只需要查找grep: x <- c("arm","foot","lefroo", "bafoobar") r <- c("ar"

我正在寻找一个R函数,它的工作原理类似于
match
,只用于正则表达式匹配,而不是相等。换句话说,如果我有一个变量
r
,它是正则表达式的字符向量,还有一个变量x,它是字符向量,我希望函数返回一个与
r
长度相同的数值向量,它为每个正则表达式提供匹配该正则表达式的第一个元素的索引。请注意,我不希望正则表达式在字符串中匹配的位置。我需要与每个正则表达式匹配的元素索引。

您只需要查找
grep

x <- c("arm","foot","lefroo", "bafoobar")
r <- c("ar","^ba","$m","foo")
获取所有正则表达式匹配索引:

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

等等,根据grep的帮助页面,你不需要
value=FALSE
让它返回索引吗?还有,是否有一个函数可以获取regexp的向量,或者我只需要使用sapply就可以了?
value=FALSE
grep
的默认值。我不知道还有一个函数的参数是字符向量和正则表达式字符串向量。此外,这些类型的问题正是
*apply
系列函数旨在解决的问题。
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