본문 바로가기
C++

[VS] 정규식 활용하여 #if !define() 전처리기 지시문 #if define() #else로 수정하기

by juheeL 2017. 2. 21.

환경 : VS2008 (VS2015에서 되는지 미검증)

#if !define() 전처리기 지시문 선언을 

#if define() #else 로 바꾸고 싶다.


언제쓰나..?

바꿔야할 #if !define() 선언된 곳이 너무너무너무 많다... 이럴때 유용하다.

몇개 안고칠때는 그냥 복사붙여넣기 하면 된다.




#if !defined(20170221_JH_G_CODE)

int aNum = 100;

#endif // 20170221_JH_G_CODE


-> 아래와 같이 바꾸고 싶다.


#if defined(20170221_JH_G_CODE)

#else

int aNum = 100;

#endif // R20170221_JH_G_CODE



단순히 Ctrl+F 로 찾아 바꿀 때 #if defined(20170221_JH_G_CODE)

#else

이 구문을 복사붙여넣기하면 #else가 붙여넣기가 안되고 잘린 것을 확인할 수 있다.


이 때 정규식을 활용하면 깔끔하게 해결 가능하다~



찾을 내용 : 

\#if:b*\!defined\(:b*20170221_JH_G_CODE:b*\)


바꿀 내용 : 

#if defined(20170221_JH_G_CODE)\n#else


바꾼 후 적용 잘 되었나 재검색해서 확인하기 : 

\#if:b*defined\(:b*20170221_JH_G_CODE:b*\):b*\n\#else






 정규식 입력

 해석

\#

#

\!

!

\(

(

\)

)

\문자

문자 인식

 :b* 

 빈칸이나 탭이 있거나 없거나

 코드에 들어가는 _

_에 \ 안붙여도 인식 잘 된다.

20170221_JH_G_CODE

20170221_JH_G_CODE







참고링크1 : http://egloos.zum.com/matan/v/495021

참고링크2 : http://goguri.tistory.com/entry/%EB%B9%84%EC%A5%AC%EC%96%BC-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%B0%BE%EA%B8%B0-%EB%B0%8F-%EB%B0%94%EA%BE%B8%EA%B8%B0-%EC%A0%95%EA%B7%9C%EC%8B%9D-%EC%9D%B4%EC%9A%A9-%ED%95%98%EA%B8%B0-1