У меня есть файлы журналов, и я хочу проанализировать эти журналы с помощью регулярного выражения - это сравнение строк по одному, если выполняются условия регулярного выражения.
Строка, которую я пытаюсь проанализировать:
190326 000117.252|0|0|1221564|21|Beg|Request: http://myurl/services/serviceName [CallId=85aa2407-8ca0-481c-9ece-a772ca789ce0]
Какую информацию я хочу получить:
- threadId = 21 - до | Beg |Statement
- callID = 85aa2407-8ca0-481c-9ece-a772ca789ce0 - значение callId в конце
Первое созданное мной регулярное выражениевыглядит так:
(?<thread>\d{2}).*\|Beg.*\[CallId=(?<CallId>[a-zA-Z0-9\-]+?)\]
И выполнение заняло ~ 30-35 секунд.
Второе регулярное выражение, которое я использовал, выглядит так:
(?<thread>\d{2})[^|]*\|Beg.*\[CallId=(?<CallId>[a-zA-Z0-9\-]+?)\]
ИВремя восстановления уменьшилось до ~ 9 секунд.
Не могли бы вы взглянуть на мое регулярное выражение и сообщить мне, если есть возможность улучшить регулярное выражение, чтобы улучшить время выполнения?
Заранее спасибо,Дэйв.