РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ — Как отфильтровать это сообщение журнала NGINX?

#node.js #regex

#node.js #регулярное выражение

Вопрос:

Я отправляю access.log сообщение из NGINX на конечную точку AWS-Lambda (УЗЕЛ) (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. 25 / Сентябрь / 2020:10:20:30
  3. Публикация
  4. /webservices/realtime/some.php

На данный момент я могу вернуться 25/Sep/2020:10:20:30 -0400 . это ссылка. Может кто-нибудь подсказать, как я могу этого добиться? Это может быть 1 шаг (1 регулярное выражение) или 4 шага (4 регулярных выражения)

Комментарии:

1. (d{1,3}(?:.d{1,3}){3})[s-] [([^][] )]s '([A-Z] )s ([^s'] ) , см. демонстрацию

Ответ №1:

Это делает это: ((?:d{1,3}.){3}d{1,3}).*[(.*)s-d{4}]s'(.*?)s(.*?)

Смотрите https://regex101.com/r/I8m8kD/1