StringReplace in nen Array

  • Hallo Forumgemeinde,
    Ich habe ne Regex erstellt die aus einem html source alle vorhandenen Nicknamen ermittelt.

    [autoit]

    $aRegEx = StringRegExp($HtmLSourceCode,'.portal.site.cnc..stats.*persona.CC.SUB.3a(.*).game.', 3)
    _ArrayDisplay($aRegEx)

    [/autoit]

    Das heißt, es werden 1-20 Treffer erwartet,
    und jeden Treffer müßte ich dann wegen den Sonderzeichen

    [autoit]

    $aRegex[0] = StringReplace($aRegex[0],"%26","&")
    $aRegex[0] = StringReplace($aRegex[0],"%5e","^")
    $aRegex[0] = StringReplace($aRegex[0],"%3e",">")
    $aRegex[0] = StringReplace($aRegex[0],"%7e","|")
    $aRegex[0] = StringReplace($aRegex[0],"%40","@")
    $aRegex[0] = StringReplace($aRegex[0],"%24","$")
    $aRegex[0] = StringReplace($aRegex[0],"%7b","{")
    $aRegex[0] = StringReplace($aRegex[0],"%7d","}")
    $aRegex[0] = StringReplace($aRegex[0],"%3c","<")
    $aRegex[0] = StringReplace($aRegex[0],"%2b","+")

    [/autoit]

    ...einzelnt in nen Array ansprechen. Allerdings hät ich das gern kürzer,
    wäre toll wenn mir jemand weiterhelfen könnte. Ich bin nämlich gerade von AHK nach Autoit umgestiegen :)

  • Hallo AspirinJunkie,
    danke für deine schnelle Antwort :)

    leider vergaß ich auch zu sagen, das ich es nicht nur gerne kürzer hätte, sondern auch schneller zur Laufzeit.
    Und eine Regex möchte ich eigentlich ungerne mehrmals durch den kompletten htmlsourcecode ziehen.

    Deshalb frage ich mich ja, wie ich es innerhalb eines ganzen Arrays bewältigen kann.

  • Dann z.B. so:

    [autoit]

    Global $aReplaces[10] = ["26","5e", "3e","7e","40", "24", "7b", "7d", "3c", "2b"]

    [/autoit][autoit][/autoit][autoit]

    For $i in $aReplaces
    $aRegex[0] = StringReplace($aRegex[0], "%" & $i, BinaryToString("0x" & $i))
    Next

    [/autoit]


    Dabei ist man allerdings auf die Sonderzeichen angewiesen die man extra manuell einträgt anstatt alle.
    Um zu sehen wie es am schnellsten geht poste einfach mal die URL damit man testen kann wie es am schnellsten und kürzesten ist.

  • ja gut, das wäre dann diese url


    Nachtrag:

    Zitat

    Dabei ist man allerdings auf die Sonderzeichen angewiesen die man extra manuell einträgt anstatt alle.

    Ich denke du meint wohl die Arrays :!: ,

    weil mit deinem obrigen Code werden Sonderzeichen erfolgreich umgewandelt, allerdings nur bei einer fixen arrray Adressierung. Ich könnte den Code jetzt noch 19 mal zu jeden Array einzelnt hinzuweisen. Bringt mir aber auch nichts, da ich nicht zuvor weiß, wieviele Nicknamen in dem Array vorkommen.

    2 Mal editiert, zuletzt von John (26. März 2011 um 21:33)