У меня есть большой файл журнала, я пытаюсь извлечь две части информации из регулярного выражения powershell в одну строку. Лог содержит всевозможные данные, но интересующие меня блоки я привел в пример ниже. Я пытаюсь найти пользователей, которые входят в систему с неправильной версией приложения.
Пример данных (это не отображается в предварительном просмотре, но есть разрывы строк):
Device User Name: CDALLAS
Is SSO : false
Versions : id=VNF-Android
0=Client-Version,VN v4.82.1;android;SM-G900V,.
Device User Name: smith5
Is SSO : false
Versions : id=VNF-Android
0=Client-Version,VNNEXT v4.32,.
Device User Name: joe123
Is SSO : false
Versions : id=VNF-iOS
0=Client-Version,APPSTORE v5.89;iPhone OS;iPhone8 1,.
Что мне нужно вернуть для каждого из них:
CDALLAS 4.82.1
smith5 4.32
joe123 5.89
В идеале я бы хотел исключить любые записи с 4.82.1, так как это правильная версия.
Для части имени пользователя я могу использовать что-то вроде (?<=Device User Name: )(.*)
Но как мне получить рядом с ним номер версии?
Номеру версии всегда предшествует "Client-Version" (какой-то текст) "v" (номер версии), затем либо a , либо ;
Regex всегда вызывал у меня головную боль. Любая помощь будет принята с благодарностью.