⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만,
새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.
84. 문자열 대치 StrReplace
마지막 수정일: 2023-12-24
이번엔 Haystack에서 Needle을 찾아 다른 문자열로 대치시키는 StrReplace
함수를 배워보겠습니다.
StrReplace
StrReplace
함수는 주어진 문자열에서 정해준 문자열을 또다른 문자열로 대치시켜, 변환된 문자열을 반환하는 함수입니다.
StrReplace(Haystack, Needle [, ReplaceText, CaseSense, &OutputVarCount, Limit])
StrReplace 함수의 원형
매개변수가 많지만, 지난 강까지의 문자열 처리를 해내셨으면 문제 없습니다!
- Haystack: 전체 문자열입니다.
- Needle: ReplaceText로 변환될 문자열입니다.
- ReplaceText: 바뀔 문자열입니다.
- CaseSense: 대소문자 구분 여부를 설정할 수 있습니다. (
InStr
과 같음) - &OutputVarCount: 변환된 개수가 담길 참조 변수입니다.
- Limit: 최대 변환 개수를 정수로 설정할 수 있습니다.
결국 StrReplace의 역할은 아래와 같이 말할 수 있겠네요.
Haystack에서 Needle을 ReplaceText로 바꾼 문자열을 반환한다!
매개변수 중 특기할 부분에 대해서 몇가지 더 설명드리겠습니다.
ReplaceText를 생략하면 빈 문자열로 대치되어 결국 Needle을 제거하는 효과가 있고요, CaseSense는 InStr
의 그것과 동일한 용법을 따르고, &OutputVarCount엔 참조형식(VarRef)을 적어주어 해당 변수에 '바뀐 횟수'가 담기게 합니다.
보통은 ReplaceText까지만 쓰거나, ReplaceText도 생략하여 문자열을 제거하는데 쓰입니다.
실습
1. 문자열 내의 모든 '파이썬'을 '오토핫키'로 바꾸기
1 context := "파이썬 진짜 편하네요!"
2 MsgBox(StrReplace(context, "파이썬", "오토핫키"))
어렵지 않죠?
이 예제에서는 변환된 문자열을 별도의 변수에 담지 않고, 바로 MsgBox
로 출력했다는 점도 말씀드립니다.
2. 문자열 내의 개행 모두 제거
1 context := "
2 (
3 태정태세문단세
4 예성연중인명선
5 광인효현숙경영
6 정순헌철고순
7 )"
8
9 MsgBox(StrReplace(context, "`n"))
이 역시 어렵지 않은 예제입니다.
ReplaceText 인수를 전달해주지 않아서 주어진 문자열의 개행(`n
)을 모두 제거하는 동작이 되었습니다.
이렇게 StrReplace
는 특정 문자열을 제거하는데에도 쓰인다는 점을 기억해두세요.