프로그래밍을 하다보면, 반복된 것을 키보드 노가다로 하는 경우가 많습니다.
프로그램소스를 웹상에서 불러왔는데, 수정하거나, 필요없는 부분을 편집할때 꼭 필요한 것이 정규식인 것 같습니다.
엄청난 키보드 작업을 줄일 수 있는 수식인거죠.. 예를 들어 웹상에서 긁어온 자료중 자신이 활용할 부분이 있는데,
몇백줄의 라인번호를 지워야 한다면?
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#
멋진예제인 듯, 이런식으로 응용해서 사용하면 많은 것들이 편리해집니다.
'IT tech Coding > VSCODE' 카테고리의 다른 글
vscode에서 파이썬 def 선언된 것을 전부 접기 기능을 하려면 명령어가 있을까? 너무 많은 함수 하나하나 접기 힘드네요~ (0) | 2024.06.29 |
---|---|
[VSCODE] 알고 있으면 너무 편리한 기능 한줄복사,한줄이동,한줄삭제 단축키(short key) (0) | 2021.11.17 |