首页 > 解决方案 > 正则表达式 - 如何过滤此 NGINX 日志消息?

问题描述

我正在access.logNGINXAWS-Lambda (NODE) 端点 (POST) 发送消息。

我在CloudWatch中收到以下消息:

{"text":"177.41.45.264 - - [25/Sep/2020:10:20:30 -0400] 'POST /webservices/realtime/some.php HTTP/1.1' 200 35 '-' '-'"}

我想将前一个字符串过滤为 4 个部分:

  1. 177.41.45.264
  2. 2020 年 9 月 25 日:10:20:30
  3. 邮政
  4. /webservices/realtime/some.php

现在我可以回来了25/Sep/2020:10:20:30 -0400。这是链接。有人可以提供我如何实现这一目标的线索吗?它可以是 1 个步骤(1 个正则表达式)或 4 个步骤(4 个正则表达式)

标签: node.jsregex

解决方案


这样做:((?:\d{1,3}\.){3}\d{1,3}).*\[(.*)\s-\d{4}\]\s'(.*?)\s(.*?)

https://regex101.com/r/I8m8kD/1


推荐阅读