我对使用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:在另一端,$
表示字符串的结尾。
归档时间: |
|
查看次数: |
58 次 |
最近记录: |