【发布时间】:2012-07-16 13:06:29
【问题描述】:
我想从字符向量中提取以数字开头的元素,但我不明白 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 因为这些是以数字开头的元素。
我对语法有什么误解?
【问题讨论】:
-
请注意,在 stringr ICU 正则表达式模式中,您可以使用
[:digit:]而无需额外的括号。但是,建议保留它们以实现跨引擎兼容性。