Wie: alles zwischen zwei Textstellen löschen?

  • Liebe Gemeinde,

    ich hadere immer wieder mit der Thematik, dass ich in allen möglichen Seiten einen Bereich löschen will, völlig egal, was darin steht und wie lange das ist.

    Ich habe z.B. unverwechselbare Muster am Anfang und Ende des zu löschenden Bereichs, wie z.B. äääSTART und ENDEööö.

    Mit StringRegExp finde ich zwar die Begrenzungen, aber ich finde keine Möglichkeit, ALLES, was dazwischen steht, zu löschen. Da sollte dann nur mehr alles vom Beginn bis einschließlich äääSTART und alles von ENDEööö bis zum Ende des Dokuments übrig bleiben.

    Wie sollte der entsprechende Ausdruck lauten?

    Danke für Ideen!

    • Offizieller Beitrag

    So:

    AutoIt
    Global $sStart = 'äääSTART'
    Global $sEnd = 'ENDEööö'
    Global $sText = StringFormat('1.Zeile cvdegf\r\nfdfhewuhvcd dsfewuf\r\n frfhee ffer äääSTART bla und blubb\r\ndies und das\r\nENDEööö djere Rest\r\n')
    
    Global $sResult = StringRegExpReplace($sText, '(?s)(.*' & $sStart & ').+(' & $sEnd & '.*)', '$1$2')
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sResult = ' & @CRLF & $sResult & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console