# StrReplace

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

    ReplacedStr := StrReplace(Haystack, Needle , ReplaceText, CaseSense, &OutputVarCount, Limit)

## 参数

Haystack

  类型: 字符串

  内容被搜索和替换的字符串.

Needle

  类型: 字符串

  要搜索的字符串.

ReplaceText

  类型: 字符串

  替换 Needle 的文本. 如果省略或为空, 那么 Needle 会被替换为空. 换句话说, 它将在返回值中被省略.

CaseSense

  类型: 整数或字符串

  下列值之一(如果省略, 默认为 0):

  `"On"` 或 `1` (`True`): 搜索区分大小写.

  `"Off"` 或 `0` (`False`): 字母 A-Z 被视为与其小写字母相同.

  `"Locale"`: 根据当前用户的区域设置规则, 搜索是不区分大小写的. 例如, 在大多数英语及西欧地区, 不仅将 A-Z 视为等同于它们的小写形式, 同时也将非-ASCII 字母(如 Ä 和 Ü) 视为等同的. 根据被比较字符串的性质, Locale 比 Off 慢 1 到 8 倍.

&OutputVarCount

  类型: VarRef

  未加引号的变量引用, 其中储存了要进行替换的数量(没有则为 0).

Limit

  类型: 整数

  如果省略 Limit, 则默认为 -1, 它将替换 Haystack 中找到的 所有 模式. 否则, 请指定允许的最大替换数量. Haystack 最后一个替换对象右边的内容将保持不变.

## 返回值

类型: 字符串

此函数返回指定字符串的替换版本.

## 备注

内置变量 A_Space 和 A_Tab 分别包含了单个空格和单个制表符. 当在 Needle 的开头或结尾或单独搜索空格和制表符时, 这很有用.

## 相关

RegExReplace, InStr, SubStr, StrLen, StrLower, StrUpper

## 示例

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

    A_Clipboard := StrReplace(A_Clipboard, "`r`n")

用加号替换所有空格.

    NewStr := StrReplace(OldStr, A_Space, "+")

移除变量文本中所有空行.

    Loop
    {
        MyString := StrReplace(MyString, "`r`n`r`n", "`r`n",, &Count)
        if (Count = 0)  ; 不再需要更多的替换.
            break
    }

dftg