R 中 grepl() 函数的模式匹配

Pattern match with grepl() function in R

我对使用 grepl() 函数进行模式匹配的以下结果感到困惑 -

grepl("[0-9]{2}-[0-9]{2}-[0-9]{2}", "2010-04-09") # TRUE
grepl("[0-9]{4}-[0-9]{2}-[0-9]{2}", "2010-04-09")  #TRUE

我不应该期望第一个结果是 FALSE 吗?

任何指点将不胜感激。

结果正确。

grepl 正在寻找 xx-xx-xx 的模式,其中 x 是一个数字,并且它确实出现在第一个查询中。如果想从字符串的开头开始查询,可以使用^符号。

例如,如果您要 运行 grepl("^[0-9]{2}-[0-9]{2}-[0-9]{2}", "2010-04-09"),您会得到 FALSE,但 grepl("^[0-9]{4}-[0-9]{2}-[0-9]{2}", "2010-04-09") 会 return TRUE。

PS:在对端,$表示字符串结束。