50 - [오토핫키] 문자열관리, 파싱 (4)
50 - [오토핫키] 문자열관리, 파싱 (4)
Parsing (파싱)은 문장의 문법적인 구성을 분석하는 과정을 나타내는 용어로 사용됩니다. 이번에는 문자의 개수와 문자를 다른 문자로 변경하는 명령어를 다루겠습니다. |
|
|
문법 : 문자의 개수
StringLen, OutputVar, InputVar OutputVar := StrLen(InputVar) |
설명
OutputVar문자의 개수를 저장할 변수의 이름 |
InputVar문자의 개수를 측정할 내용을 담고 있는 변수의 이름. |
예제
예제1)var = ;변수에 여러줄을 담을땐 소괄호! ( 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리 나라 만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 )
StringTrimLeft, Trim, var, 37 StringLen, Len, Trim Msgbox, 제거하고 남은 글자수는 %Len% Return |
예제2)var = ;변수에 여러줄을 담을땐 소괄호! ( 여 : 니가 나한테 어떻게 이럴 수 있어!? 남 : 미안해... 여 : 뭐가 미안한데? 남 : 뭐든 정말 다 미안해 여 : 니가 뭘 잘못한지도 모르고 사과를 해? 남 : 자기전에 전화 안한거 미안해 여 : 됐어 우리 헤어져! )
;StringMid, Output, var, 61, 8 ;StringLen, Len, Output ;MsgBox, %Len%
MsgBox % StrLen(SubStr(var, 61, 8)) Return |
예제2의 경우 명령어로 작성했다면 3줄을 작성해야 하지만 이렇게 내장함수에 표현식 열람 방식을 사용한다면 단 1줄에 해결 할 수 있어요. 명령어를 많이 알고있는것도 좋지만 이처럼 스크립트는 최대한 간소화하는것도 중요하답니다!! |
문법 : 지정된 문자를 새 문자로 교체
StringReplace, OutputVar, InputVar, SearchText [, ReplaceText, ReplaceAll?] OutputVar := StrReplace(Haystack, SearchText [, ReplaceText, OutputVarCount, Limit := -1]) |
설명
OutputVar교체한 결과를 저장할 변수의 이름 |
InputVar 또는 Haystack검색하여 교체할 내용을 담고 있는 변수의 이름 |
SearchText검색할 문자열 (검색어) |
ReplaceText교체할 새 문자열. SearchText가 이 문자로 교체됩니다. 생략하면 SearchText를 제거합니다. |
OutputVarCount (StrReplace)교체가 일어난 횟수를 저장할 변수의 이름 |
Limit (StrReplace)교체할 횟수를 지정함. 기본값은 -1이며 생략할 경우 모든 패턴을 교체 합니다. |
ReplaceAll? (StringReplace)생략할 경우 기본값은 첫번째 검색결과만 교체합니다. 1이나 A혹은 All을 입력하면 모든 패턴을 교체 합니다. |
예제
예제1)var = ;변수에 여러줄을 담을땐 소괄호! ( 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리 나라 만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 )
StringReplace, Output, var, `n, , All MsgBox, %Output% Return |
예제2)var = ;변수에 여러줄을 담을땐 소괄호! ( 여 : 니가 나한테 어떻게 이럴 수 있어!? 남 : 미안해... 여 : 뭐가 미안한데? 남 : 뭐든 정말 다 미안해 여 : 니가 뭘 잘못한지도 모르고 사과를 해? 남 : 자기전에 전화 안한거 미안해 여 : 됐어 우리 헤어져! )
var := StrReplace(var, "남", "옹봉이") var := StrReplace(var, "여", "남") var := StrReplace(var, "옹봉이", "여") MsgBox, %var% Return |
예제1은 `n (줄바꿈)을 한 모든 부분을 제거하여 한줄로 표기합니다. 예제2는 내장함수 StrReplace(Haystack, SearchText [, ReplaceText, OutputVarCount, Limit := -1]) 를 썼으나 StringReplace와 동일한 효과를 갖고 있습니다. 어느것을 사용해도 무방해요. "남"을 일시적으로 "옹봉이"로 바꿔놓은 후 "여"를 "남"으로, 다시 "옹봉이"를 "여"로 바꿔주면 남, 여가 뒤바뀝니다. |