Я бы хотел использовать регулярное выражение .NET / Powershell для поиска в журнале статуса Success
в определенном месте, скажем ABC
.
Если я использую следующий шаблон: "(?ms)A status: Success.*?Location: "
с глобальным (он же AllMatches), то он находит все записи журнала со статусом Success
в любом месте.
Если я попытаюсь сузить его, добавив ABC
к шаблону, то совпадение будет слишком жадным и переходит от Успеха в строке 18 до ABC
в строке 28.
Я отказался и использовал шаблон, который является более явным (он захватывает полную запись журнала и, кажется, работает, потому что я задаю шаблон между успехом и расположением):
(?sm)^\d([ \S]*\s{10}){3}A status: Success\s{2}([ \S]*\s{10}){2}Location: ABC[ \S]*
Есть ли более простой шаблон, который может найти то, что я ищу?
Примечание: я не против, если шаблон захватывает полную запись журнала с даты (включительно) до даты (исключая),
Файл журнала:
04/09/2018 06:31:59 AM [class | Info] some message received from 101592 (123.123.123.124)
Request Id: 0 (Descriptor: 0, Operator Request Id: 0)
A type: bar
A status: Queued
The id: 1E25
Additional info: Inserted in queue at position 1 on device ABC
Location: ABC, subarea: 2
04/09/2018 06:31:59 AM [class | Info] some message received from 102364 (123.123.123.123)
Request Id: 0 (Descriptor: 0, Operator Request Id: 0)
A type: bar
A status: Queued
The id: 1E25
Additional info: Inserted in queue at position 1 on device ABC
Location: ABC, subarea: 2
04/09/2018 06:31:59 AM [class | Info] some message received from 102364 (123.123.123.123)
Request Id: 0 (Descriptor: 0, Operator Request Id: 0)
A type: blah bit foo
A status: Success
The id: T908
Additional info:
Location: DEF, subarea: 3
04/09/2018 06:32:00 AM [class | Info] some message received from 102364 (123.123.123.123)
Request Id: 0 (Descriptor: 0, Operator Request Id: 0)
A type: bar
A status: Success
The id: DG08
Additional info:
Location: ABC, subarea: 1