Regex & Property Sheethttp://whiletrue0222.com/
@whiletrue0222
http://cafe.naver.com/architect1
아꿈사
2012. 09. 01
http://www.flickr.com/photos/jacqueline-w/2837089885/sizes/l/in/photostream/
목록• 정규표현식을 활용한 찾기 및 바꾸기
• Property Sheet 를 활용하자 .
정규 표현식이란
http://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D
Visual Studio 에서 정규식 사용
정규식을 쓰려면 체크
기본적인 구문몇 개만 나온다 .
어느 날 갑자기 팀장님이 부르신다 ..
한글로 된 로그 전부 영어로 바꾸란다 .
작성된 로그가 수천 개가 된다 !
한글로 된 것을 언제 다 일일이 찾지 ?
그냥 예제를 위한 예시상황입니다 .
로그코드는 대략 이렇게 ..
WriteLog(“ 로그메시지” );
코드 구문 분석
WriteLog(“ 로그메시지” );
문자열함수 이름
WriteLog.*:Ha
WriteLog(“ 로그메시지” );
찾는 정규식찾을 코드
찾는 정규식
WriteLog.*:Ha
WriteLog(“ 로그메시지” );
함수이름이 일치하고
WriteLog.*:Ha
WriteLog(“ 로그메시지” );
중간에 문자들이 있고
식 구문 구문단일 문자 . 줄 바꿈 문자를 제외한 모든 단일 문자0 이상 * 앞의 식을 0 번 이상 찾습니다 .
한글이 있다 .
WriteLog.*:Ha
WriteLog(“ 로그메시지” );
식 구문 구문한글 :Ha 한글 및 조합 자모를 찾습니다 .
Visual Studio 에서 검색하면 .
정규식에 일치하는문자열들
팀장님이 또 부르신다… ..
strcpy 를 strncpy_s 로 전부 바꾸거라 .
그냥 예제를 위한 예시상황입니다 .
strcpy( dest, src );
strncpy_s( dest, src, count );
함수 차이점
count 변수 추가
함수명이 다름
strcpy( dest, src );
정규식으로 찾기
strcpy{.*}{\)}
함수이름을 찾고
strcpy( dest, src );
strcpy{.*}{\)}
기존 매개변수 찾고
{} - 태그식 뒤에서 설명합니다 .
strcpy( dest, src );
strcpy{.*}{\)}
닫기 괄호를 찾는다
strcpy( dest, src );
strcpy{.*}{\)}
strncpy_s\1, _TRUNCATE\2
바꾸기
함수 이름을 변경
strcpy( dest, src );
strcpy{.*}{\)}
strncpy_s\1, _TRUNCATE\2
매개변수를 대입
strcpy( dest, src );
strcpy{.*}{\)}
strncpy_s\1, _TRUNCATE\2
Count 를 추가
strcpy( dest, src );
strcpy{.*}{\)}
strncpy_s\1, _TRUNCATE\2
닫기 괄호를 대입
결과
주의
앞서 설명한 정규식은 단순하여
실제로 사용할 때는 여러 상황을
고려해서 식을 만들어야 한다 .
목록• 정규표현식을 활용한 찾기 및 바꾸기
• 속성 시트 (Property Sheet) 를 활용하자 .
속성 시트 (Property Sheet)
http://msdn.microsoft.com/ko-kr/library/a4xbdz1e(v=vs.100).aspx
다수의 프로젝트를 각각 설정 ?
각각 설정하면 고생 .디렉터리 구조 변경되면 눈물 .실수 위험도 높다 .
속성시트를 활용하자 .
Ogre 1.8 sample
Ogre 는 Cmake 를
사용해서 속성시트가
없답니다 .
속성시트 적용 전
중복
속성시트 적용 후
중복제거
_UNICODE 전처리기는어디에 선언 되어있나 ?
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0 ( 제 컴 기준 )
_UNICODE 정의됨
속성관리자• 보기 -> 속성관리자 창에서
추가 가능
• 대부분의 프로젝트 설정을 상속시킬 수 있다 .
참고• List of regular expression software– http://en.wikipedia.org/wiki/List_of_regul
ar_expression_software
• 정규식 (Visual Studio)– http://msdn.microsoft.com/ko-kr/library/
2k3te2cs(v=vs.100).aspx
• 속성 시트 (C++)– http://msdn.microsoft.com/ko-kr/library/
a4xbdz1e(v=vs.100).aspx
감사합니다 .