티스토리 뷰

반응형

프로그래밍을 하다보면, 반복된 것을 키보드 노가다로 하는 경우가 많습니다.

프로그램소스를 웹상에서 불러왔는데, 수정하거나, 필요없는 부분을 편집할때 꼭 필요한 것이 정규식인 것 같습니다.

엄청난 키보드 작업을 줄일 수 있는 수식인거죠.. 예를 들어 웹상에서 긁어온 자료중 자신이 활용할 부분이 있는데,

몇백줄의 라인번호를 지워야 한다면?

001.
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
002.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
003.
#SingleInstance force
004.
 
005.
;Initialization
006.
wt := 60 ;Screen Width
007.
ht := 30 ;Screen Height
008.
 
009.
TileW := 15 ;Tile Size
010.
FontSize := TileW - 3 ;Font Size
011.
 
012.
RTOffSet := 2 ;Food Wall Offset
013.
StartToTail :=5 ;Start Tail Length
014.
 
 (중략....)
 
328.
GuiClose:
329.
ExitApp

 

위의 코드를 하나씩 001. ~ 329. 까지 키보드를 지워야 하는데,

정규식을 사용해서 아래와 같이 바꾸기 기능을 하면 해결됩니다.

찾는 내용 : \d\d\d\.

바꿀 내용 : (공백)

 

실행 후 결과 화면

 
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
 
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
 
#SingleInstance force
 
 
 
;Initialization
 
wt := 60 ;Screen Width
 
ht := 30 ;Screen Height
 
 
 
TileW := 15 ;Tile Size
 
FontSize := TileW - 3 ;Font Size
 
 
 
RTOffSet := 2 ;Food Wall Offset
 
StartToTail :=5 ;Start Tail Length
 
 
 
SpeedToStart:= 80 ; Start Speed
 
SpeedOffSet := 0 ; Speed up by Food , 0 fixed SpeedToStart
 
SpeedEnd := 70 ; Final Speed
 
 
 
 
 
Move := ""
 
gosub makeGUI
 
return
 
  
 
GuiClose:
 
ExitApp

 

정규식이 처음보면 외계어같아서 별로 호감이 가지 않지만, 알고 쓰면 정말 편하다는 것은 코딩을 해본 사람들은 전부 알 수 있을 것 같습니다.

정규식 문법은 대부분 비슷하게 개발하는 분위기이니, 하나만 잘 한다면 다른 것에도 편하게 사용할 수 있을 것 같네요. notepad++ 정규식 관련은 홈페이지에 실제 예가 자세히 나와있으니, 참고하면 좋겠습니다,.

짧은 예제)

^로봇 - 로봇으로 시작하는 행과 일치합니다.
Land$ - 땅에서 끝나는 선을 일치시킵니다.
^로봇 지구$ - 정확한 일치 (로봇 지구로 시작하고 끝납니다)
워밍업   - 워밍업 텍스트가 포함된 모든 줄과 일치합니다.

'$KEYWORD' 유형의 문자열을 #KEYWORD# 형식으로 일괄 치환하려면

이때, Ctrl+F 찾기(바꾸기) 창에서 아래와 같이 입력 한다.
이를 응용하면 여러가지 경우에도 다양하게 활용 가능하다.
 
- 찾기모드: 정규 표현식
- 찾을내용: '\$([\w]+)'
- 바꿀내용: #\1#

멋진예제인 듯, 이런식으로 응용해서 사용하면 많은 것들이 편리해집니다.

 

반응형
댓글