StringReplace

Ersetzt die angegebene Teilzeichenkette mit einer neuen Zeichenkette.

AusgabeVar := StrReplace(Heuhaufen, Suchtext [, Ersatztext, AusgabeVarAnzahl, Limit := -1])  ; v1.1.21+
StringReplace, AusgabeVar, EingabeVar, Suchtext [, Ersatztext, AllesErsetzen?]

Parameter

AusgabeVar

Name der Variable, in der das Ergebnis vom Ersetzen gespeichert werden soll.

EingabeVar oder Heuhaufen

Name der Variable, deren Inhalt eingelesen werden soll. Umschließen Sie den Namen nicht mit Prozentzeichen, es sei denn, Sie wollen den Inhalt der Variable als Namen verwenden.

Da StrReplace() eine Funktion ist, kann Heuhaufen ein Ausdruck sein.

Suchtext

Der zu suchende Text. Die Suche nach einem Treffer unterscheidet nicht zwischen Groß- und Kleinschreibung, sofern StringCaseSense deaktiviert ist.

Ersatztext

Suchtext wird mit diesem Text ersetzt. Fehlt dieser Parameter oder ist er leer, wird Suchtext mit einer leeren Zeichenkette ersetzt. Das heißt, dass der gesuchte Text in AusgabeVar wegfällt.

OutputVarAnzahl (StrReplace)

Der Name einer Variable ohne Anführungszeichen, in der die Anzahl gespeichert werden soll, wie oft der Heuhaufen ersetzt wurde (0, wenn keine).

Limit (StrReplace)

Fehlt Limit, gilt standardmäßig -1, dadurch werden alle Vorkommen des Musters ersetzt, die im Heuhaufen gefunden wurden. Ansonsten kann man angeben, wie oft der Heuhaufen ersetzt werden soll. Der Heuhaufen-Bereich rechts neben der letzten Ersetzung bleibt unverändert.

AllesErsetzen? (StringReplace)

Fehlt dieser Parameter, wird nur das erste Vorkommen von Suchtext ersetzt. Wenn er allerdings 1, A oder All ist, werden alle Vorkommen ersetzt.

Geben Sie das Wort UseErrorLevel an, um die Anzahl der ersetzten Vorkommen in ErrorLevel zu speichern (0, falls keine). UseErrorLevel bewirkt, dass alle Vorkommen ersetzt werden.

ErrorLevel

StrReplace: ErrorLevel wird nicht gesetzt.

StringReplace: Falls der letzte Parameter UseErrorLevel ist, wird ErrorLevel die Anzahl der ersetzten Vorkommen erhalten (0, falls keine). Ansonsten wird ErrorLevel auf 1 gesetzt, wenn Suchtext in EingabeVar nicht gefunden wurde, oder auf 0, falls doch.

Bemerkungen

Bei diesen und allen anderen Befehlen kann AusgabeVar auch EingabeVar sein, und umgekehrt.

Die internen Variablen A_Space und A_Tab enthalten jeweils ein einzelnes Leerzeichen und ein einzelnes Tabulatorzeichen. Sie sind nützlich, um nach Leer- und Tabulatorzeichen zu suchen, die entweder einzeln oder am Anfang oder Ende von Suchtext vorkommen.

Seit v1.0.45 ist die AllSlow-Option aufgrund von Performanceverbesserungen und Speichernutzung veraltet. Zwar kann diese Option weiterhin angegeben werden, allerdings ist sie unwirksam.

Siehe auch

RegExReplace(), IfInString, StringCaseSense, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StringLen, StringLower, StringUpper, StringGetPos, if Var is Typ

Beispiele

; Entfernt alle CR+LF-Paare in der Zwischenablage:
StringReplace, Clipboard, Clipboard, `r`n, , All

; Ersetzt alle Leerzeichen mit Pluszeichen:
StringReplace, NeueZeichenk, AlteZeichenk, %A_SPACE%, +, All

; Entfernt alle leeren Zeilen im Text einer Variable:
Loop
{
    StringReplace, MeineZeichenk, MeineZeichenk, `r`n`r`n, `r`n, UseErrorLevel
    if ErrorLevel = 0  ; Ersetzen nicht mehr notwendig.
        break
}