StringReplace / StrReplace()

Ersetzt die angegebene Teilzeichenkette mit einer neuen Zeichenkette.

StringReplace

Veraltet: Dieser Befehl ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die StrReplace-Funktion.

StringReplace, AusgabeVar, EingabeVar, Suchtext , Ersatztext, AllesErsetzen?

Parameter

AusgabeVar

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

EingabeVar

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.

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.

AllesErsetzen?

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

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% können genutzt werden, um ein einzelnes Leerzeichen oder ein einzelnes Tabulatorzeichen anzugeben. Sie sind nützlich, um nach Leer- und Tabulatorzeichen zu suchen, die entweder einzeln oder am Anfang oder Ende von Suchtext vorkommen.

[v1.0.45+]: Die AllSlow-Option ist aufgrund von Performanceverbesserungen und Speichernutzung veraltet. Zwar kann diese Option weiterhin angegeben werden, allerdings ist sie unwirksam.

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
}

StrReplace() [v1.1.21+]

ErsetzteZkette := StrReplace(Heuhaufen, Suchtext , Ersatztext, AusgabeVarAnzahl, Limit := -1)

Parameter

Heuhaufen

Eine Zeichenkette, deren Inhalt durchsucht und ersetzt werden soll.

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.

AusgabeVarAnzahl

Geben Sie eine Variable an, in der die Anzahl gespeichert werden soll, wie oft der Heuhaufen ersetzt wurde (0, wenn keine).

Limit

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.

Rückgabewert

Diese Funktion gibt eine Version von Heuhaufen zurück, deren Inhalte von der Operation ersetzt wurden. Wenn nichts ersetzt werden konnte, wird Heuhaufen unverändert zurückgegeben.

Beispiele

; Entfernt alle CR+LF-Paare in der Zwischenablage:
Clipboard := StrReplace(Clipboard, "`r`n")

; Ersetzt alle Leerzeichen mit Pluszeichen:
NeueZeichenk := StrReplace(AlteZeichenk, A_Space, "+")

; Entfernt alle leeren Zeilen im Text einer Variable:
Loop
{
    MeineZeichenkette := StrReplace(MeineZeichenkette, "`r`n`r`n", "`r`n", Anzahl)
    if Anzahl = 0  ; Ersetzen nicht mehr notwendig.
        break
}

Siehe auch

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