> x<-c("01.mp3","invite.mp3")
> x[grep(x,pattern="[:digit:]")]
[1] "invite.mp3"
在正则表达式中,为什么我不能得到“01.mp3”?
答案 0 :(得分:1)
如果你想获得“01.mp3”,因为它由两位数字和“.mp3”组成,那么你可以这样做:
x<-c("01.mp3","invite.mp3")
x[grep(x,pattern="[0-9]{2}.mp3")]
答案 1 :(得分:0)
我认为这里发生的事情(有人可能会纠正我),是你实际上并不匹配你的想法。您需要将括号列表[:digit:]
放在括号内以匹配列表,否则您将匹配:digit:
中的文字字符。你可以通过向x
添加第三个元素来看到这一点:
x<-c("01.mp3","invite.mp3", ":")
x[grep(pattern="[:digit:]", x = x)]
#[1] "invite.mp3" ":"
因此[:digit]
也会匹配:
。相反,您使用[[
:
x[grep(x,pattern="[[:digit:]]")]
#[1] "01.mp3" "invite.mp3"
然后你匹配班级数字。