RegEx eines Textes der mittels PIPE zurückgeben wurde

  • Guten Morgen,


    ich versuche gerade einen Text mittels RegEx zu duchsuchen. Es klappt, aber leider nicht ganz so wie ich es möchte.


    Erst einmal kurz der Hintergrund woher der Text kommt welchen ich durchsuchen möchte.


    Ich führe einen Konsolenbefehl mittels

    Code
    subprocess.Popen("dism /get-wiminfo /wimfile:./wimFiles/file1.wim", shell=True, stdout=subprocess.PIPE)
    output, err = p.communicate()

    aus.


    Danach habe ich folgen Text den ich durchsuchen möchte:

    Code
    b'\r\nTool zur Imageverwaltung f\x81r die Bereitstellung\r\nVersion: 10.0.17134.1\r\n\r\nDetails f\x81r Abbild: "./wimFiles/windows-pro-n.wim"\r\n\r\nIndex: "1"\r\nName: "Windows 10 Pro N"\r\nBeschreibung: "Windows 10 Pro N"\r\nGr\x94\xe1e: 14.755.150.578 Bytes\r\n\r\nDer Vorgang wurde erfolgreich beendet.\r\n'

    Haben möchte ich jeweils den Namen, Beschreibung und Die jeweilige Größe.

    Ich bekomme allerdings entweder gar nichts oder zu viel zurück.


    Mein Versuch war folgender:

    Code
    name = re.findall(r'Name:.+\\r\\nB', output)
    description = re.findall(r'Beschreibung:.+\"', output)
    size = re.findall(u'Gr\x94\xe1e:.+\"', output, re.UNICODE)

    Damit bekomme ich folgendes zurück:

    Code
    ['Name: "Windows 10 Pro"\\r\\nB']
    ['Beschreibung: "Windows 10 Pro"']
    []

    Jemand eine Ahnung warum?


    Gruß Lutz

  • Lutz Oswald

    Changed the title of the thread from “RegEx eines Str” to “RegEx eines Textes der mittels PIPE zurückgeben wurde”.
  • So?

    Code
    import re
    
    text = b'\r\nTool zur Imageverwaltung f\x81r die Bereitstellung\r\nVersion: 10.0.17134.1\r\n\r\nDetails f\x81r Abbild: "./wimFiles/windows-pro-n.wim"\r\n\r\nIndex: "1"\r\nName: "Windows 10 Pro N"\r\nBeschreibung: "Windows 10 Pro N"\r\nGr\x94\xe1e: 14.755.150.578 Bytes\r\n\r\nDer Vorgang wurde erfolgreich beendet.\r\n'
    
    m = re.search(b'Name: (.+)\\r\\nB', text )
    print( m.group(1) )