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

Bog*_*aso 2 r grepl

我对使用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
Run Code Online (Sandbox Code Playgroud)

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

任何指针都将受到高度赞赏。

小智 5

结果是正确的。

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")会返回 TRUE。

PS:在另一端,$表示字符串的结尾。