正则表达式用空格替换一个字符

时间:2021-04-08 18:38:54

标签: regex amazon-s3 amazon-athena

我在 AWS 日志文件中有一个时间戳,格式如下:2021-04-04T12:21:29Z

这个正则表达式会将时间戳分为三组:

(?<utcDate>[0-9]{4}-[0-9]{2}-[0-9]{2})(?:T)(?<utcTime>[0-9]{2}:[0-9]{2}:[0-9]{2})

输出:2021-04-04T12:21:29

我正在尝试用空格替换 T 以创建有效的时间戳格式,以通过 AWS Athena 导入 SQL 时间戳列。我已经在我的 select 语句中使用 date_parse 将两个 utcDate 和 utcTime 组连接成一个时间戳。但是我想在我的表中有一个时间戳,这样我就可以在我的 where 子句中查询时间戳。

当我将上述正则表达式放入一个由子组组成的组中时,即使 T 是在非捕获组中定义的,它仍然会返回。是否可以匹配一个字符 T 并用空格替换它?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您想用空格替换 Treplace(column_name, 'T', ' ')。如果您想要来自 ISO 8601 字符串的 TIMESTAMPfrom_iso8601_timestamp(column_name)