StringReplace

文字列中の特定の文字列を別の文字列に置換する

StringReplace, OutputVar, InputVar, SearchText [, ReplaceText, ReplaceAll?] 

Parameters

引数名説明
OutputVar 置換結果の文字列を格納する変数名
InputVar 置換前の文字列を格納している変数名。
OutputVarと同じものを指定してもよい。
SearchText 検索文字列。StringCaseSenseで設定しない限り、大文字小文字は無視される。
ReplaceText SearchTextが置き換えられる先の文字列。
省略時は、SearchTextが削除される(空に置換される)。
ReplaceAll? 以下のものを半角スペース区切りで指定する。
All
SearchTextに一致するすべての部分を置換する。「1」や「A」でも同じ。
UseErrorLevel
全ての部分を置換しつつ、ErrorLevelに置換された数を格納する。
AllSlow
後述の高速化のための処理方法を使用しない。(メモリ消費が少ない)

ErrorLevel

SearchTextが見つからなかった場合「1」、置換に成功した場合「0」。
ただし、UseErrorLevelが指定されている場合、置換された数になる。

Remarks

SearchTextやReplaceTextに半角スペースやTab文字を指定したい場合、組み込み変数%A_Space%%A_Tab%を使用する。

ReplaceAllを有効にし、SearchTextとReplaceTextに違う長さの文字列を指定し、InputVarが5000バイト以上あり、SearchTextが20個以上見つかった場合、高速化のため通常とは違う方法で処理を行う。
この処理の間、通常より多くのメモリを使用する。

Related

IfInString, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StringCaseSense, StringLen, StringLower, StringUpper, StringGetPos, if var is type

Example(s)

; Remove all CR+LF's from the clipboard contents:
StringReplace, clipboard, clipboard, `r`n, , All
; Replace all spaces with pluses:
StringReplace, NewStr, OldStr, %A_SPACE%, +, All

; Remove all blank lines from the text in a variable:
Loop
{
    StringReplace, MyString, MyString, `r`n`r`n, `r`n, UseErrorLevel
    if ErrorLevel = 0  ; No more replacements needed.
        break
}