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:在对端,$
表示字符串结束。
我对使用 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:在对端,$
表示字符串结束。