【发布时间】:2016-11-01 15:42:24
【问题描述】:
我正在尝试检查一个字符串是否包含 2 个或更多日期值
给定字符串包含四个日期值,但 grepl 返回 FALSE
无法让 grepl 检测 strng 中的所有日期实例
> strng
[1] "SMART PRODUCTS 0.50 0.76 0.79 05/09/16 1000 1.02 1.02 27/06/16 17/06/11 27/06/16 0"
> grepl("([0-9][0-9]/[0-9][0-9]/[0-9][0-9]){1}", strng)
[1] TRUE
> grepl("([0-9][0-9]/[0-9][0-9]/[0-9][0-9]){2,}", strng)
[1] FALSE
【问题讨论】:
-
试试
grepl("(.*[0-9][0-9]/[0-9][0-9]/[0-9][0-9].*){2,}", x);您的第二个模式是搜索两个连续的事件,例如grepl("([0-9][0-9]/[0-9][0-9]/[0-9][0-9]){2,}", "27/06/1617/06/11"). -
您可能想查看 stringr 包中的函数
str_locate_all( )。而stringi包也提供了类似的功能。