본문 바로가기
programming language/Autohotkey

Autohotkey RegExMatch 를 사용하여 특정 패턴 다 찾기

by __observer__ 2016. 6. 29.
반응형

텍스트에서 일정한 패턴을 찾는 기술로 정규 표현식을 주로 사용합니다.

   

오늘은 autohotkey 정규표현식을 사용하여 일정한 패턴을 다 찾는 방법에 대해 소개하려 합니다.

   

autohotkey 에서 정규표현식을 사용 하여 문자의 패턴을 찾을 때 RegExMatch() 함수를 사용 합니다.

   

기본적인 사용방법은 아래 매뉴얼 페이지를 확인해 보시기 바랍니다.

   

https://autohotkey.com/docs/commands/RegExMatch.htm

   

RegExMatch() 함수는 지정한 위치로부터 지정한 패턴에 대해 하나 하나 찾는 기능은 있지만 한번에 다 찾는 기능은 없습니다.

   

따라서 다 찾고 싶다면 아래와 같이 코딩 할 수 있습니다.

   

testText 변수에 있는 텍스트 들 중에서 XX_ 와 공백이 있고 다음에 영어 문자가 나오는 패턴을 다 찾아 보겠습니다.

   

testText =

(

ddd XX_ abc

xxx XX_ def

ggg XX_ ghi

sdfsdf XX_ jkl

vcxvxcv XX_ mno

)

   

위 변수에 대해 아래와 같이 코딩 하면 위에서 얘기한 패턴을 다 찾을 수 있습니다.

   

GroupArraySearched 배열에는 XX_(공백) 뒤에 나오는 문자가 저장이되고~

   

GroupArraySearchedAllText 배열에는 XX_(공백)문자 가 다 저장 됩니다.

   

p := 1, m := ""

GroupArraySearched := []

GroupArraySearchedAllText := []

   

while p := RegExMatch(testText, "i)XX_\s*(\w+)", m, p + StrLen(m))

{

    GroupArraySearched[A_Index] := m1

    GroupArraySearchedAllText[A_Index] := m

}

   

      

Join(sep, params*) {

    for index,param in params

        str .= param . sep

    return SubStr(str, 1, -StrLen(sep))

}

   

SearchedText := Join("`n", GroupArraySearched*)

MsgBox % SearchedText

   

SearchedTextAll := Join("`n", GroupArraySearchedAllText*)

MsgBox % SearchedTextAll 

   

위 코드를 실행 시켜보면 다음과 같이 찾고자 하는 문자가 나오고~

   

XX_ 부터 찾고자 하는 문자까지를 다 찾은 결과가 나옵니다.

반응형

댓글