如何检测像'['在字符变量中的运算符

时间:2014-06-11 11:46:36

标签: r operators character subset string-split

假设我有"var""var[1]"等字符变量。如何检测角色中是否有运算符[]

我一直在调查strsplitagrep,但到目前为止没有成功..

非常感谢!

2 个答案:

答案 0 :(得分:2)

琐碎的正则表达式转义特殊字符:

> x=c("var","var[1]")
> grepl("\\[",x)
[1] FALSE  TRUE

阅读正则表达式:help(regexp)

答案 1 :(得分:1)

获取带有索引的值:

 x <- "var[22]"
 m <- regexpr("\\[.*\\]", x, perl=TRUE)
 > regmatches(x, m)
 [1] "[22]"

或者获取值:

 > grep("\\[.*\\]", c("var[2]"), perl=TRUE, value=TRUE)
 [1] "var[2]"

获取索引:

> grep("\\[.*\\]", c("var[2]"), perl=TRUE, value=FALSE)
[1] 1