StringReplace

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

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

StringReplace, OutputVar, InputVar, SearchText , ReplaceText, ReplaceAll

参数

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

如果为空或省略, 那么只替换 SearchText 的首个匹配. 否则, 请指定 1, A 或 All, 来替换所有匹配.

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

ErrorLevel

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

备注

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

内置变量 A_SpaceA_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 [not] 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
}