Я хочу записать имя кода состояния http с помощью регулярных выражений.
Это пример текста записи файла журнала:
Completed in 0.01434 (69 reqs/sec) | Rendering: 0.00006 (0%) | DB: 0.00220 (15%) | 404 Not Found [https://www.sample.com/page/soaps/1.xml]
Как всем известно, код состояния http варьируется для каждогозапись файла журнала.Это может быть одно из следующих значений:
200 OK
401 Unauthorized
201 Created
422 Unprocessable Entity
302 Found
404 Not Found
Моя группа захвата должна содержать одно из следующего:
OK
Unauthorized
Created
Unprocessable Entity
Found
Not Found
Мое текущее выражение регулярного выражения выглядит следующим образом:
\D+(\d+(?:\.\d+)?\s*\([^)]+\))\D+(\d+(?:\.\d+)?\s*\([^)]+\))\D+(\d+(?:\.\d+)?\s*\([^)]+\))\D+(\d{1,3})\D+([A-Z]{2}|[A-Z][a-z]{1,12}(\s[A-Z][a-z]{1,10})?)\D+(\[.*\])\K
Но если вы запустите его на сайте www.regex101.com, вы увидите, что он не регистрирует код состояния http с двумя словами (то есть, «Необработанный объект» и «Не найден»).
Что яделать неправильно?