StringReplace

지정된 부분문자열을 새 문자열로 교체합니다.

비추천: 이 명령어는 새 스크립트에 사용을 추천하지 않습니다. 대신 StrReplace 기능을 사용하십시오.

StringReplace, OutputVar, InputVar, SearchText , ReplaceText, ReplaceAll

매개변수

OutputVar
The name of the output variable in which to store the result of the replacement process.
InputVar
The name of the input variable whose contents will be read from. 이름을 퍼센트 사인으로 둘러 싸지 마십시오. 변수의 내용을 이름으로 사용하고 싶다면 예외입니다.
SearchText
검색할 문자열. 부합은 대소문자를 구분하지 않습니다. 단, StringCaseSense가 켜져 있는 경우는 예외입니다.
ReplaceText
SearchText는 이 텍스트로 교체됩니다. 생략되거나 비어 있으면, SearchText는 빈 문자열로 교체됩니다. 다른 말로, OutputVar로부터 제외됩니다.
ReplaceAll

생략하면, 오직 SearchText의 첫 번째 부합만 교체됩니다. 그러나 이 매개변수가 1이나 A 또는 All이면, 모든 부합이 교체됩니다.

단어 UseErrorLevel을 지정하면 ErrorLevel에 교체된 횟수를 저장할 수 있습니다 (없으면 0). UseErrorLevel은 묵시적으로 "All".

ErrorLevel

마지막 매개변수가 UseErrorLevel이면, ErrorLevel에는 교체된 횟수가 설정됩니다 (없으면 0). 그렇지 않으면, ErrorLevel은 SearchTextInputVar 안에서 발견하지 못한 경우 1이 설정되고 발견한 경우는 0이 설정됩니다.

논평

이 명령어와 다른 모든 명령어에 대하여, OutputVarInputVar와 같은 변수가 되어도 허용합니다.

내장 변수 %A_Space%%A_Tab%에 각각 스페이스 문자 하나와 탭 문자 하나가 들어 있습니다. SearchText의 앞이나 뒤에서 스페이스와 탭을 따로 검색할 경우에 유용합니다.

[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
}