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С
Санкт-Петербург
зарплата от 70 000 руб.
Полный день

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

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

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

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