프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

84. 문자열 대치 StrReplace


이번엔 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. 문자열 내의 모든 '파이썬'을 '오토핫키'로 바꾸기

1context := "파이썬 진짜 편하네요!"
2MsgBox(StrReplace(context, "파이썬", "오토핫키"))
예제 1. 파이썬을 모두 오토핫키로 변환

어렵지 않죠? 이 예제에서는 변환된 문자열을 별도의 변수에 담지 않고, 바로 MsgBox로 출력했다는 점도 말씀드립니다.

2. 문자열 내의 개행 모두 제거

1context := "
2(
3태정태세문단세
4예성연중인명선
5광인효현숙경영
6정순헌철고순
7)"
8
9MsgBox(StrReplace(context, "`n"))
예제 2. 개행을 모두 제거

이 역시 어렵지 않은 예제입니다. ReplaceText 인수를 전달해주지 않아서 주어진 문자열의 개행(`n)을 모두 제거하는 동작이 되었습니다. 이렇게 StrReplace는 특정 문자열을 제거하는데에도 쓰인다는 점을 기억해두세요.

질문하러 가기