0

我正在做一些关于博客解析的练习,这里有一个关于正则表达式的问题:

日志文件的格式为:

in24.inetnebr.com - - [01/Aug/1995:00:00:01 -0400] “GET /shuttle/missions/sts-68/news/sts-68-mcc-05.txt HTTP/1.0”200 1839

我需要获取时间戳,这是我现在拥有的:

regexp_extract('value', r'((\d\d/\w{3}/\d{4}:\d{2}:\d{2}:\d{2} -\d{4}))', 1).alias('timestamp'),

这让我回想起:

1995 年 8 月 1 日:00:00:01 -0400

我的问题是 -0400 是什么意思?时区?如何删除它?

4

1 回答 1

0

的 - 那是一个时区

您可以通过消除-\d{4}部分模式来简单地删除它。所以这就是你要找的:

regexp_extract('value', r'((\d\d/\w{3}/\d{4}:\d{2}:\d{2}:\d{2}))', 1).alias('timestamp'),

在线演示

也作为解释:

  • -匹配一个破折号加上它后面的空格
  • \d匹配一个数字
  • {4}将其限制为仅 4 位数
于 2016-07-28T03:11:11.850 回答