어제 정규식 중에서 RegExMatch에 대하여 이야기 해봤습니다.

#1을 안보신분은 읽고 오시는게 도움이 되실겁니다. (http://plorence.kr/233)

RegExMatch함수는 규칙이 90%입니다. 나머지 인자로 전달해야 해줘야하는건 너무나도 쉬워서 규칙이 90%라고 생각됩니다.

제가 알려줄건 규칙(패턴)의 옵션입니다.

1.옵션

옵션의 사용법은 "옵션)~~" 이런식으로 쓰시면됩니다.

i : i는 대소문자 구분을 안한다는 의미입니다. RegExMatch함수는 기본적으로 대소문자를 구분하게 돼있습니다.

1
2
3
4
5
txt := "AbCDefg"
RegExMatch(txt,"i)ABC(.*?)eFG",aa1)
msgbox,%aa11% ;D를 출력
ExitApp
return
cs

2.구문(규칙)

구문(규칙)은 옵션뒤에 규칙을 짤때 사용합니다

구문(규칙) 

 

\d 

\d는 숫자 하나의 부합합니다. 만약 123에서 2를빼오고싶으면 "\d(.*?)\d"이면 1,3위치에 0-9중에 어떤 하나의 숫자 라면 일치합니다. 

\w 

\w는 단어 문자의 부합합니다. 만약 abc에서 b를 빼오고싶으면 "\w(.*?)\w"이런식으로 써도 b를 추출합니다. \w를 쓴자리에 문자이면 참으로 인식하니까요. 문자부류는 [a-z],[A-Z],[0-9]입니다. \W는 단어문자가 아닌 문자입니다.

\s 

\s는 공백 문자의 부합합니다.주로 스페이스,탭,새행문자(`n)입니다. 만약 (공백)aa(공백) 이런식에서 aa만 빼고싶으면 "\s(.*?)\s"으로하면 aa를 추출합니다. 

\C 

\C는 "를 대신합니다. 일반적으로 "그대로써버리면 에러가나 정상적으로 작동을 못합니다. 그래서 \C로 써줘야합니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
txt1 := "11aa11" ;aa만 추출하고싶을때
RegExMatch(txt1,"\d\d(.*?)\d\d",output_a)
msgbox,%output_a1% ;aa를 출력
txt1 := "aa기억aa" ;11만 추출하고싶을때
RegExMatch(txt1,"\w\w(.*?)\w\w",output_b)
msgbox,%output_b1%
txt1 := " 1 " ;1만 추출하고싶을때
RegExMatch(txt1,"\s(.*?)\s",output_b)
msgbox,%output_b1%
;<span class="name" name만 추출하고싶을때
RegExMatch(txt1,"<span class=\C(.*?)\C",output_d)
ExitApp
return
cs

위에 알려준 구문의 예제입니다 저는 제가 정규식을 사용하면서 가장 많이 쓰는것들 입니다.

추가로 더 알고싶은분은 아래의 링크를 타고 들어가셔서 확인하시면 됩니다

http://autohotkeykr.sourceforge.net/docs/misc/RegEx-QuickRef.htm#Options

댓글을 달아 주세요