본문 바로가기
programming language/Autohotkey

Autohotkey regular expression 관련 함수에서 변수 사용하기

by 남성 2017. 2. 26.
Autohotkey 에서 정규표현식을 사용할 때 NeedleRegEx , Replacement 부분에 변수를 사용하고 싶은 경우가 있습니다. 

Python 등에서는 escape() 함수등을 제공해 줘서 이런 함수가 있나 했는데 Autohotkey에 이런 함수는 없더군요. 

그래서 검색을 좀 해보니 불가능 한게 아니었습니다.

어쩌면 Python 의 예보다 더 단순한게 할 수 있더군요. 

아래와 같은 텍스트가 있는 경우~ 

Var =
(
Line 1 of the text.
Line 2 of the text. By default, a linefeed
is present between lines.
)

Line 1,  Line 2  부분을 바꿔 보도록 하죠. 물론 이 경우는 변수를 안 쓰는게 맞지만 그냥... 예니까 변수를 써보죠.

NeedleRegEx 부분에 단순하게 변수  NeedleRegExVar 와 정규 표현식을 붙여서 NeedleRegExVar "\s+(\d+)"  를 쓰면 됩니다.

NeedleRegExVar=Line
Var2 := RegExReplace(Var,  NeedleRegExVar "\s+(\d+)","replaceText")

MsgBox % Var2

결과는 다음과 같습니다.


다음으로 위에서 바꿨던 replaceText 부분을 ' 로 감싸 보죠~ 이에 대한 코드는 아래와 같습니다. ' 로 감싸줘야 되니까  replaceVar "$1" replaceVar 로 처리 했고~ 

replaceVar='
Var3 := RegExReplace(Var2,"(replaceText)", replaceVar "$1" replaceVar )

MsgBox % Var3

결과는 다음과 같습니다.



댓글0