用新字符串替换指定的子字符串.
ReplacedStr := StrReplace(Haystack, SearchText , ReplaceText, OutputVarCount, Limit := -1)
内容被搜索和替换的字符串.
要搜索的字符串. 如果没有启用 StringCaseSense, 那么匹配过程不区分大小写.
用来替换 SearchText 的文本. 如果省略或为空, 那么 SearchText 会被替换为空. 换句话说, 它会被从 OutputVar 删除.
指定用来存储替换次数的变量(没有则为 0).
如果 Limit 省略, 那么默认为 -1, 将替换所有在 Haystack 中要替换的内容. 否则, 请指定允许的最大替换数量. Haystack 最后一个替换对象右边的内容将保持不变.
这个函数返回 Haystack 的一个版本, 其内容已经被操作所替换. 如果不需要替换, Haystack 将不会被修改.
; 移除剪贴板中所有的 CR+LF: Clipboard := StrReplace(Clipboard, "`r`n") ; 用加号替换所有空格: NewStr := StrReplace(OldStr, A_Space, "+") ; 移除变量中所有空行: Loop { MyString := StrReplace(MyString, "`r`n`r`n", "`r`n", Count) if (Count = 0) ; 不再需要更多的替代. break }
不推荐: 不推荐在新脚本中使用此命令. 使用 StrReplace 函数作为代替.
StringReplace, OutputVar, InputVar, SearchText , ReplaceText, ReplaceAll?
用来存储替换后的新字符串的变量名.
需要被读取内容的变量名. 不要把名称括在百分号中, 除非您希望使用变量的内容作为被解析的变量名.
要搜索的字符串. 如果没有启用 StringCaseSense, 那么匹配过程不区分大小写.
用来替换 SearchText 的文本. 如果省略或为空, 那么 SearchText 会被替换为空. 换句话说, 它会被从 OutputVar 删除.
如果省略, 那么只替换 SearchText 的首个匹配. 如果此参数为 1, A 或 All, 那么替换所有匹配.
指定单词 UseErrorLevel 可以把替换的次数保存到 ErrorLevel(没有则为 0). UseErrorLevel 包含了 "All" 的作用.
当最后一个参数为 UseErrorLevel 时, ErrorLevel 中会保存替换的次数(没有则为 0). 否则, 如果在 InputVar 中没有找到 SearchText 则 ErrorLevel 被置为 1, 找到则置为 0.
在这个及其他所有命令中,OutputVar 和 InputVar 中可以使用相同的变量.
内置变量 %A_Space% 和 %A_Tab% 分别包含了单个空格和单个 tab 字符. 当您需要搜索单独的空格或 tab 或在 SearchText 的开始或末尾含有空格或 tab 时, 这很有用.
[v1.0.45+]: 为了改善性能和内存的利用率, AllSlow 选项已经作废. 尽管仍可以指定它, 但不会有效果.
; 移除剪贴板中所有的 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 }
RegExReplace(), IfInString, StringCaseSense, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StrLen() / StringLen, StringLower, StringUpper, StringGetPos, if var is type