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와 동일한 효과를 갖고 있습니다. 어느것을 사용해도 무방해요.

    "남"을 일시적으로 "옹봉이"로 바꿔놓은 후 "여"를 "남"으로, 다시 "옹봉이"를 "여"로 바꿔주면 남, 여가 뒤바뀝니다.

     

     

     

     

    Posted by 옹봉이