StringRegExp Richtig suchen

  • hallo miteinander,

    ich mache jetzt schon etwas länger damit herum und ich verstehe es immer noch nicht, wie man damit richtig sucht und findet.

    Das ist mein Code:

    AutoIt
    ...    
    $sSource           = _IEDocReadHTML($oIE)
    $aHerstellernummer = StringRegExp($sSource, "(?s)<td><strong>Herstellernummer</strong></td>\s*<td>(.*?)</td>", 3)    ; Aktuelle Herstellernummer lesen
        ....

    Das ist der HTML Code dazu:

    HTML
    <td><strong>Herstellernummer</strong></td> <td>0815654</td>


    Jetzt möchte ich noch den Hersteller auslesen:
    Das ist der HTML Code zum Hersteller:

    HTML
    <td><strong>Hersteller</strong></td>
                                    <td id="manufacturerName">HieristderHerstellername</td>

    also habe ich versuche eine neue Codezeile zu erstellen die mir den Hersteller zurück gibt, ich bekomme aber immer nur das Ergebnis "1" zurück :(
    Wie sieht mein bisheriger Code aus:

    AutoIt
    $sSource     = _IEDocReadHTML($oIE)$aHerstellernummer = StringRegExp($sSource, "(?s)<td><strong>Herstellernummer</strong></td>\s*<td>(.*?)</td>", 3)    ; Aktuelle Herstellernummer lesen
    $aHersteller = StringRegExp($sSource, "<td><strong>Hersteller</strong></td>(?s)<td(.*+)</td>", 3)              ; Aktuelle Hersteller lesen
    if IsArray($aHersteller) Then    _ArrayDisplay($aHersteller)Else    echo ("Kein Array ;-( = " & $aHersteller)endif ;==> IsArray

    Zeile 2: das (?s) habe ich dort stehen (findet alle Zeichen, auch Zeilenumbrüche)
    Zeile2: (.*+)

    . = Findet jedes einzelne Zeichen (außer Zeilenumbrüche).

    * = Wiederholt die bisherigen Zeichen, Sets oder Gruppen kein oder mehrmals. Äquivalent zu {0,}
    + = Wiederholt die bisherigen Zeichen, Sets oder Gruppen mindestens einmal. Äquivalent zu {1,}

    ich bekomme jedoch immer als Ergebnis kein Array und 1.

    Wie muss ich denn richtig suchen? das ich den Hersteller ausgegeben bekomme?

    ps. das Echo ist eine Func die eine MSGBox aufruft.

    gruß Mücke

  • ja genau richtig.

    ich möchte den Herstellernamen auslesen.
    Die Herstellernummer Habe ich ja schon ;-).

    ich habe eine Lösung gefunden.
    der Code sieht nun so aus.


    AutoIt
    $aHersteller       = StringRegExp($sSource, "<td><strong>Hersteller</strong></td>\s*<td id=""manufacturerName"">(.*)</td>", 3)                ; Aktuelle Hersteller lesen

    ich habe das (?s) durch \s* ersetzt. ab dann habe ich wider Ergebnisse bekommen. :)
    habe dann noch den Restlichen Fixen Text angepasst und bekomme nun den Hersteller in einem Array ausgegeben.


    Gruß Mücke