替换字符串中指定的子字符串为新的字符串。
StringReplace, OutputVar, InputVar, SearchText [, ReplaceText, ReplaceAll?]
OutputVar | 存储替换后的字符串的变量名。 |
InputVar | 需要进行替换的字符串变量名。不要在变量名外加百分号,除非你想使用变量中的 内容 作为变量名。 |
SearchText | 被替换的文本。不区分大小写,除非打开了 StringCaseSense 。 |
ReplaceText | 替换的文本。替换 SearchText 中的内容。如果省略或留空,SearchText 会被替换为空。也就是说,它在 OutputVar 中会被省略。 |
ReplaceAll? | 如果省略,只有第一个匹配 SearchText 的子字符串会被替换。如果这个参数是 1 、A 或者 All ,则所有匹配的子字符串都将被替换。 使用单词 UseErrorLevel 的话可以在 ErrorLevel/错误级别 中存储被替换的子字符串的数量(如果没有任何子字符串被替换则是 0 )。UseErrorLevel 包含了“All”的作用。 |
当最后一个参数是 UseErrorLevel 的时候,ErrorLevel/错误级别 中会存储被替换的子字符串的数量(如果没有任何子字符串被替换则是 0 )。否则,当 InputVar 中未包含 SearchText 的时候 ErrorLevel/错误级别 被设置为 1 ,包含的时候设置为 0 。
在这个命令以及所有其它命令中,OutputVar 可以和 InputVar 相同。
内置变量 %A_Space% 和 %A_Tab% 包含了一个单独的空格和一个单独的制表符。当你需要单独搜索空格或制表符,或者在 SearchText 的开头或结尾使用空格或制表符的时候会非常有用。
在 v1.0.45 版本中,为了改进性能和内存利用,AllSlow 参数已过时。虽然仍然可以指定它,但是不会有任何效果。
RegExReplace(), IfInString, StringCaseSense, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StringLen, StringLower, StringUpper, StringGetPos, if var is type
; 在剪贴板中移除换行: StringReplace, clipboard, clipboard, `r`n, , All ; 用加号替换所有空格: StringReplace, NewStr, OldStr, %A_SPACE%, +, All ; 移除字符串中的所有空行: Loop { StringReplace, MyString, MyString, `r`n`r`n, `r`n, UseErrorLevel if ErrorLevel = 0 ; 不需要再进行替换。 break }