R expressões regulares: comportamento inesperado de “[: digit:]”
Eu gostaria de extrair elementos começando com dígitos de um vetor de caracteres, mas há algo sobre a sintaxe de expressão regular POSIX que eu não entendo.
Eu acho que
vec <- c("012 foo", "305 bar", "other", "notIt 7")
grep(pattern="[:digit:]", x=vec)
retornaria1 2 4
desde que eles são os quatro elementos que têm dígitos em algum lugar neles. Mas na verdade ele retorna3 4
.
Da mesma formagrep(pattern="^0", x=vec)
devolve1
como eu esperaria, porque o elemento 1 começa com um zero. Contudogrep(pattern="^[:digit:]", x=vec)
devolveinteger(0)
enquanto eu esperaria que voltasse1 2
já que esses são os elementos que começam com dígitos.
Como eu estou entendendo errado a sintaxe?