尝试找到此特定字符“ |”字符串中的位置

时间:2018-06-26 20:35:29

标签: r

我正在尝试在字符串中找到此特定字符"|"的位置。

例如:8,75.2|6,0.376 我期望的答案是7

我尝试使用regexpr:

 regexpr('|',"8,75.2|6,0.376")

但是它没有用(尽管它在我寻找“,”时也有用)

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

“ |”字符是正则表达式中的特殊字符。您可以搜索“ |”通过使用转义符'\'regexpr("\\|","8,75.2|6,0.376")

答案 1 :(得分:0)

另一种选择是使用lapply

> str <- '8,75.2|6,0.376'
> chars <- strsplit(str, '')
> chars
[[1]]
[1] "8" "," "7" "5" "." "2" "|" "6" "," "0" "." "3" "7" "6"
> loc <- lapply(chars, function(elem) which (elem == '|'))
> loc
[[1]]
[1] 7

请参见lapply documentation

答案 2 :(得分:0)

您可以使用stringr软件包:

library(stringr)
str_locate("8,75.2|6,0.376",fixed('|'))
#or
str_locate("8,75.2|6,0.376",'\\|')

样本结果:

     start end
[1,]     7   7