我想从字符 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)

相反,因为冒号之间的“元模式”通常需要使用双括号。

10-06 07:15
查看更多