1. user785225 13 29.06.20 20:46 Сейчас в теме

Сгенерировать регулярное выражение

Есть набор данных, который содержит сообщения 2 видов (строки каждого разделяются переносом строки):
(ссылка на форматированный текст)

1) условно назовем "выход"
Выполнен выход учетной записи из системы. Субъект: ИД безопасности: M\user1 Имя учетной записи: user1 Домен учетной записи: M Код входа: 0x151E34E47 Тип входа: 3 Данное событие возникает при уничтожении сеанса входа. Его можно однозначно связать с событием входа с помощью значения "Код входа". Коды входа остаются уникальными после перезагрузки, но они уникальны только на одном компьютере.


2) условно назовем "вход"
Вход в учетную запись выполнен успешно. Субъект: ИД безопасности: NULL SID Имя учетной записи: - Домен учетной записи: - ИД входа: 0x0 Сведения о входе: Тип входа: 3 Ограниченный режим администрирования: - Виртуальная учетная запись: Нет Расширенный маркер: Нет Уровень олицетворения: Олицетворение Новый вход: ИД безопасности: M\user1 Имя учетной записи: user1 Домен учетной записи: M ИД входа: 0x151E34F7D Связанный ИД входа: 0x0 Сетевое имя учетной записи: - Сетевой домен учетной записи: - GUID входа: {00000000-0000-0000-0000-000000000000} Сведения о процессе: ИД процесса: 0x0 Имя процесса: - Сведения о сети: Имя рабочей станции: DESKTOP-BF6DTOV Сетевой адрес источника: хх.хх.хх.хх Порт источника: 0 Подробные сведения о проверке подлинности: Процесс входа: NtLmSsp Пакет проверки подлинности: NTLM Промежуточные службы: - Имя пакета (только NTLM): NTLM V2 Длина ключа: 128 Данное событие возникает при создании сеанса входа. Оно создается на компьютере, к которому был установлен доступ. Поля "Субъект" указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например служба "Сервер", или локальный процесс, такой как Winlogon.exe или Services.exe. В поле "Тип входа" указан тип выполненного входа. Самыми распространенными являются типы 2 (интерактивный) и 3 (сетевой). Поля "Новый вход" указывают на учетную запись, для которой создан новый сеанс входа, то есть на учетную запись, в которую выполнен вход. В полях, которые относятся к сети, указан источник запроса на удаленный вход. Имя рабочей станции доступно не всегда, и в некоторых случаях это поле может оставаться незаполненным. Поле "Уровень олицетворения" задает допустимую степень олицетворения для процессов в данном сеансе входа. Поля сведений о проверке подлинности содержат подробные данные о конкретном запросе на вход. - GUID входа — это уникальный идентификатор, который позволяет сопоставить данное событие с событием KDC. - В поле "Промежуточные службы" указано, какие промежуточные службы участвовали в данном запросе на вход. - Поле "Имя пакета" указывает на подпротокол, использованный с протоколами NTLM. - В поле "Длина ключа" указывается длина созданного ключа сеанса. Это поле может иметь значение "0", если ключ сеанса не запрашивался.


Нужно состряпать регулярное выражение, которое бы получало для любого из этих 2 видов сообщения значение после "Имя учетной записи:", причем в 1) это должно быть значение первого вхождения, а во 2) - второго вхождения.

Для случая 1) состряпал выражение .*Имя учетной записи:\s+([^\s]+)\s+.* которое работает, но для 2) оно получает первое вхождение, а нужно второе вхождение
Вознаграждение за ответ
Показать полностью
Найденные решения
3. 6есик 47 02.07.20 08:34 Сейчас в теме +2 $m
Открыл тот образец что по ссылке и понял - вот получай это должно правильно отработать :
[^.]*Имя учетной записи:\s+([^\s]+)\s+.*(?!.*Имя учетной записи:\s+([^\s]+)\s+.*)


https://regex101.com/r/1C6HI7/1/
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
3. 6есик 47 02.07.20 08:34 Сейчас в теме +2 $m
Открыл тот образец что по ссылке и понял - вот получай это должно правильно отработать :
[^.]*Имя учетной записи:\s+([^\s]+)\s+.*(?!.*Имя учетной записи:\s+([^\s]+)\s+.*)


https://regex101.com/r/1C6HI7/1/
2. 6есик 47 01.07.20 08:28 Сейчас в теме
Не совсем понятно - может такое подойдет ?

.*мя учетной записи:\s+([^\s]+)\s+.*(?!.*мя учетной записи:\s+([^\s]+)\s+.*)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день