Programming 언어/Skill

[SKILL 강좌] 정규표현식 (rexCompile, rexMatchp, rexReplace..)

호드맨 2017. 2. 1. 13:58

정규표현식은 perl에 있는 거 아닌가요? 하면 큰 오산이죠! SKILL 에도 있습니다. 자주 쓰일지는 모르지만 유용한 기능이죠. list 편과 마찬가지로 몇 가지 예제로 보고 갑시다. 자세한 사항은 virtuoso document에 잘 나와 있으니 확인하시면 도움될 겁니다.


일단 변수 하나를 만들어서

temp = "HODMAN BLOG!!"

"HODMAN BLOG!!"

 

rexMatch는 앞의 pattern이 뒤의 변수에 있는지 검사합니다.

rexMatchp("HODMAN" temp)
t

rexMatchp("ASSURA" temp)
nil

 

rexCompile에서 특정 pattern을 compile 해 놓으면

rexCompile("HODMAN")
t

 

compile 된 pattern을 rexReplace를 통해 바꿀 수 있습니다.

rexReplace(temp, "ASSURA" 0)
"ASSURA BLOG!!"

 

rexReplace의 맨 뒤 숫자는 0일 때는 모두 변경이고 1을 주면 첫 번째 일치하는 값, 2를 주면 두 번째 일치하는 값만 변경합니다.

temp = "HODMAN HODMAN HODMAN"
"HODMAN HODMAN HODMAN"

rexReplace(temp, "DODAM", 0)
"DODAM DODAM DODAM"

rexReplace(temp, "DODAM", 1)
"DODAM HODMAN HODMAN"

rexReplace(temp, "DODAM", 3)
"HODMAN HODMAN DODAM"

 

그 외에도 rexExecute, rexMatchList, rexSubstitute 등이 있는데 저는 많이 사용 안 하게 되더라고요. 주로 쓰는 것만!


label 관련된 작업을 할 때 가끔 사용하게 됩니다. 다음에는 쉬어가는(?) 코너로 함수 하나 만들어 볼게요.

change_bracket이라는 함수로 이번에 파견 갔을 때 짜 놨던 겁니다. 아직 procedure는 안 다뤘으니 그냥 함수들만 짜 볼게요.