如何在r中的字符向量中找到特定字符的位置

时间:2014-02-06 20:27:10

标签: regex r

我有x = c("AU|30|3020","AU|15|1510","AU|2000|510")

如果我想知道x中每个元素的最后一个“|”的位置,我该怎么做。答案应该是6 6 8.

一个可接受的替代方案是找到(比方说)第二个“|”的位置对于每个元素(与最后一个“|”相对)。

2 个答案:

答案 0 :(得分:2)

您可以使用以下命令获取最后|的位置(与| s的总数无关):

unlist(gregexpr("\\|[^|]*$", x))
# [1] 6 6 8

答案 1 :(得分:0)

总是有2 |吗?如果是的话

unlist(lapply(gregexpr("\\|",x),"[[",2))

否则您可能需要解决方法。另外,请查看stringr