如何恰好匹配一次支撑内容?
grep(x=c(1223,12,1), pattern="{0-9}{3}", value=T)
的产率:
"1223" "12" "1"
为什么我不能仅得到最后一部分:
grep(x=c(1223,12,1), pattern="{0-9}{1}", value=T)
相反,我得到了同样的结果:
"1223" "12" "1"
如果长度不止一个怎么办,让我们说我需要:
> grep(value=T,x=c('A1B','A12B'),"[0-9]{1}")
只给我x的第一部分(得到单词中只有一个数字)?
答案 0 :(得分:4)
要进行精确匹配,您需要使用锚点。而且它必须是[0-9]
而不是{0-9}
,请注意使用的括号。
grep(x=c(1223,12,1),pattern="^[0-9]{1}$",value=T)
# [1] "1"
grep(x=c(1223,12,1),pattern="[0-9]{3}",value=T)
# [1] "1223"
grep(x=c(1223,12,1),pattern="^[0-9]{3}$",value=T)
#character(0)
最后一个没有返回任何内容,因为没有一个完全包含三位数的数字。