我想从字符 vector 中提取以数字开头的元素,但我不了解POSIX正则表达式语法。
我认为
vec <- c("012 foo", "305 bar", "other", "notIt 7")
grep(pattern="[:digit:]", x=vec)
将返回
1 2 4
,因为它们是其中有数字的四个元素。但实际上,它返回3 4
。同样,
grep(pattern="^0", x=vec)
返回1
,正如我期望的那样,因为元素1以零开头。但是grep(pattern="^[:digit:]", x=vec)
返回integer(0)
,而我希望它返回1 2
,因为这些是以数字开头的元素。我如何误解语法?
最佳答案
尝试
grep(pattern="[[:digit:]]", x=vec)
相反,因为冒号之间的“元模式”通常需要使用双括号。