# StringReplace

用新字符串替换指定的子字符串.

过时的: 不推荐在新脚本中使用此命令. 请使用 StrReplace 函数代替.

    StringReplace, OutputVar, InputVar, SearchText , ReplaceText, ReplaceAll

## 参数

OutputVar
  用来存储替换后的新字符串的变量名.
InputVar
  需要被读取内容的变量名. 不要把名称括在百分号中, 除非您希望使用变量的 内容 作为被解析的变量名.
SearchText
  要搜索的字符串. 如果没有启用 StringCaseSense, 那么匹配过程不区分大小写.
ReplaceText
  用来替换 SearchText 的文本. 如果省略或为空, 那么 SearchText 会被替换为空. 换句话说, 它会被从 OutputVar 删除.
ReplaceAll

  如果省略, 那么只替换 SearchText 的首个匹配. 如果此参数为 1, A 或 All, 那么替换所有匹配.

  指定单词 UseErrorLevel 可以把替换的次数保存到 ErrorLevel(没有则为 0). UseErrorLevel 包含了 "All" 的作用.

## ErrorLevel

当最后一个参数为 UseErrorLevel 时, ErrorLevel 中会保存替换的次数(没有则为 0). 否则, 如果在 InputVar 中没有找到 SearchText 则 ErrorLevel 被置为 1, 找到则置为 0.

## 备注

在这个及其他所有命令中,OutputVar 和 InputVar 中可以使用相同的变量.

内置变量 %A_Space% 和 %A_Tab% 分别包含了单个空格和单个 tab 字符. 当您需要搜索单独的空格或 tab 或在 SearchText 的开始或末尾含有空格或 tab 时, 这很有用.

[v1.0.45+]: 为了改善性能和内存的利用率, AllSlow 选项已经作废. 尽管仍可以指定它, 但不会有效果.

## 相关

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

## 示例

移除剪贴板内容中所有的 CR+LF.

    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
    }

dftg