R reguläre Ausdrücke: unerwartetes Verhalten von "[: digit:]"
Ich möchte Elemente, die mit Ziffern beginnen, aus einem Zeichenvektor extrahieren, aber die POSIX-Syntax für reguläre Ausdrücke ist etwas, das ich nicht verstehe.
Ich würde das denken
vec <- c("012 foo", "305 bar", "other", "notIt 7")
grep(pattern="[:digit:]", x=vec)
würden zurückkehren1 2 4
da sie die vier Elemente sind, die irgendwo Ziffern enthalten. Tatsächlich kehrt es aber zurück3 4
.
Gleichfallsgrep(pattern="^0", x=vec)
kehrt zurück1
wie ich es erwarten würde, da Element 1 mit einer Null beginnt. jedochgrep(pattern="^[:digit:]", x=vec)
kehrt zurückinteger(0)
wohingegen ich erwarten würde, dass es zurückkommt1 2
denn das sind die Elemente, die mit Ziffern beginnen.
Wie verstehe ich die Syntax falsch?