在R中使用正则表达式过滤带有时间戳的日期

赛勒斯·穆罕默德(Cyrus Mohammadian)

我正尝试使用正则表达式将过滤器应用于矢量,以便以以下方式检索与日期和时间戳匹配的数据:“ 12/20/2018 6:08 PM”示例:

vec<-c("house", "1 house", house 1", "12/20/2018 6:08 PM", "12/21/2018 11:49 AM", "01/05/2019 11:21 AM")

我尝试了以下方法:

str_detect(vec, "^[1-9]{2}/[1-9]{2}/[1-9]{2} [1-9]{2}:[1-9]{2} [A,P,M]$")

但这与时间戳不符。

avid_useR

我将OP的正则表达式更改为以下内容:

library(stringr)
str_detect(vec, "^[01][0-9]/[0-3][0-9]/[0-9]{4}\\s1?[0-9]:[0-9]{2}\\s[AP]M$")
# [1] FALSE FALSE FALSE  TRUE  TRUE  TRUE

或在基本R中:

grepl("^[01][0-9]/[0-3][0-9]/[0-9]{4}\\s1?[0-9]:[0-9]{2}\\s[AP]M$", vec)
# [1] FALSE FALSE FALSE  TRUE  TRUE  TRUE

如果您的目标是最终将转换vec为日期时间,我们可以直接使用进行转换as.POSIXct

datetime_vec <- as.POSIXct(vec, format = "%m/%d/%Y %I:%M %p")
# [1] NA                        NA                        NA                       
# [4] "2018-12-20 18:08:00 EST" "2018-12-21 11:49:00 EST" "2019-01-05 11:21:00 EST"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用正则表达式搜索带有时间戳的文件名

试图弄清楚如何在有时间的输入中使用正则表达式

使用正则表达式从时间戳获取日期

在Cassandra中使用带有时间戳的插入

在带有正则表达式的模板中使用Django Cut过滤器

找不到带有Python正则表达式':'字符的时间戳

带有时间戳的MomentJS返回日期

使用带有正则表达式的python日期时间将朱利安日期转换为YYYYMMDD

使用正则表达式逐步验证时间戳

使用正则表达式转换时间戳

带有时间戳的子集数据,与R中的日期无关

正则表达式从时间字符串中选择秒(所有时间都不是相同的格式)而无需后退

在带有时间戳列的PostgreSQL中使用select命令的困惑

如何在雪花中使用带有时间戳的滞后功能?

正则表达式的日期时间

正则表达式-日期时间

在带有ef的数据库中使用日期而没有时间

使用列表过滤带有正则表达式的数据框

正则表达式也可以在现有正则表达式中使用斜杠“ /”

正则表达式、Grafana Loki、Promtail:使用正则表达式从日志中解析时间戳

在R中使用正则表达式序列的正则表达式数据清除

在带有正则表达式的for循环中使用Sed

在python中使用带有正则表达式的多个变量

在 Jest 中使用带有 toHaveProperty() 的正则表达式

在带有MV的bash中使用正则表达式

在 .NET 中使用带有可选参数的正则表达式匹配重复组

如何在python中使用带有正则表达式(findall)的枚举?

我可以在Mac终端中使用带有cd命令的正则表达式吗?

如何在Haskell中使用带有正则表达式的map