I'd like to extract elements beginning with digits from a character vector but there's something about POSIX regular expression syntax that I don't understand.
I would think that
vec <- c("012 foo", "305 bar", "other", "notIt 7")
grep(pattern="[:digit:]", x=vec)
would return 1 2 4
since they are the four elements that have digits somewhere in them. But in fact it returns 3 4
.
Likewise grep(pattern="^0", x=vec)
returns 1
as I would expect because element 1 starts with a zero. However grep(pattern="^[:digit:]", x=vec)
returns integer(0)
whereas I would expect it to return 1 2
since those are the elements that start with digits.
How am I misunderstanding the syntax?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…