使用R提取字符串中“+”和“*”符号的位置

Extract position of "+" and "*" symbol in string using R

我正在寻找一种方法来提取 R 字符串中“*”和“+”符号的位置。

test <- "x+y"
unlist(gregexpr("+", test))
[1] 1 2 3
unlist(gregexpr("y", test))
[1] 3

它 returns x 或 y 的位置,但 returns + 或 * 的所有位置。

谢谢!

使用fixed = TRUE,默认为FALSE,使用正则模式,其中+为元字符。根据?regex

+ - The preceding item will be matched one or more times.

* - The preceding item will be matched zero or more times.

unlist(gregexpr("+", test, fixed = TRUE))
[1] 2

其他一些基本 R 解决方法

> which(unlist(strsplit(test, "")) == "+")
[1] 2

> which(utf8ToInt(test) == utf8ToInt("+"))
[1] 2