StringReplace
用新字符串替换指定的子字符串。
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 选项已经作废. 尽管仍可以指定它, 但不会有效果.
相关
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 }