获得正则表达式匹配的位置?

Dd *_* Pp 0 regex r

这是一个字符串:

str1="ha,hihi,aaaaa,ok"
Run Code Online (Sandbox Code Playgroud)

我想要得到的位置","str1,这可以算3,8,14.
我怎么能在R中得到它?

MvG*_*MvG 5

使用此表达式可以获得所需的向量:

as.integer(gregexpr(",", str1)[[1]])
Run Code Online (Sandbox Code Playgroud)

[[1]]将选择结果列表中的第一个元素.如果str1是一个长度不是1的向量,那么gregexpr将产生一个包含许多项的列表,每个元素对应一个str1.

as.integer将剥离额外的属性,如匹配的文本的长度.在许多情况下,您将能够省略这一点,因为其他代码可能会忽略这些属性.但是为了输出到控制台,它可能不那么令人困惑,所以我把它包含在我的答案中.