REGEXPTITLE - Bestimmte Zeichen "ersetzen"

  • Brauche Hilfe beim Erstellen der RegExp für den Parameter REGEXPTITLE von erweiterten Fenstertiteln.


    Bei WinTextMatchMode 2 (Übereinstimmung einer beliebigen Teilzeichenfolge des Titels) soll ein Fenstertitel gefunden werden, aber ich kann keinen Titel übergeben, der Single Quotes enthält.

    Deshalb ersetze ich vor dem Aufruf Single Quotes im Titel durch Fragezeichen "?". Nun brauche ich quasi eine Rückwandlung von "?" in Single Quotes, aber REGEXPTITLE ist kein StringRegExpReplace(). Wie sagt man REGEXPTITLE, dass nach Single Quotes anstelle der "?" gesucht werden soll?


  • Irgendwie bisschen wirr.

    Oben schreibst du erst was vom WinTextMatchMode, dann willst du wieder stattdessen den Titel suchen.


    Ich habe noch nicht ganz verstanden was das mit den Fragezeichen soll.
    Du parst einen AutoIT-String aus VB heraus irgendwie?
    Keine Ahnung was du da machst aber in VB werden einfache Anführungszeichen durch Backslash escaped: ' --> \' und in AutoIt durch Dopplung: ' --> ''.
    Je nach dem wo der String jetzt nun geparsed wird musst du halt die entsprechende Escape-Variante verwenden.

  • Oben schreibst du erst was vom WinTextMatchMode, dann willst du wieder stattdessen den Titel suchen.

    Entschuldigung, es war für mich ziemlich schwierig ein komplexes Problem auf eine einfache Ebene herunterzubrechen. Deshalb ist mir ein Flüchtigkeitsfehler durchgerutscht! Bitte töte mich jetzt nicht! =O Da ich überall von Titel und Fenstertitel gesprochen habe, kannst du dir schon denken: Gemeint war "WinTitleMatchMode"!


    Dein Hinweis auf das Escapen durch Doppelung hat das Problem gelöst! Vielen Dank dafür! :thumbup:


    Die Komplexität dieses Problems und anderer Probleme, die zwangsläufig mit damit verbunden sind, hat mich an viele meiner Grenzen geführt. 8| So habe ich schon früher nach Escape Squenzen recherchiert, aber da es in AutoIt sowohl einfache als auch doppelte Anführungszeichen gibt, habe ich da nie eine Doppelung benötigt.


    In diesem speziellen Fall wird in zwei Sprachen gleichzeitig programmiert: VBScript und AutoIt3. Da treffen wirklich zwei Welten aufeinander! Jeder der das versucht hat, weiß wovon ich rede. Punkt ist, dass ich oft nicht weiß, welche Sprache im jeweiligen Fall die Grenzen setzt. Wenn ich z.B. wie in diesem Fall in VBScript AutoIt-Anweisungen schreibe, die per /AutoIt3ExecuteLine benutzt werden, verwischen die Grenzen oft sehr schnell. Der langen Rede kurzer Sinn: Dieser alte Mann hat seine Grenzen! ;)


    Das Problem ist gelöst. Für diejenigen, die trotzdem ein paar Hintergrundinformationen wollen: