Notepad++ 에서는 문자열 검색 시 정규식을 지원해 줍니다.
다양한 사용법 중 강력한 기능은 "역참조" (backreference) 입니다.
특정 문자열을 찾은 다음 그 문자열을 재 참조하여 사용할 수 있다는 의미 입니다.
예를 들어
92983/예시1 ;;Example200001
65453//예시2 ;Example400002
라는 문자가 있을 경우 여러가지 방법으로 정보를 추출하고 싶어 집니다.
숫자들(92983, 65453) 만 뽑거나
예시의 번호(1, 2)만 뽑는 것
혹은 Example 의 번호(200001, 400002) 를 뽑을 수도 있고
그 외에도 다른 여러가지 방법으로 뽑고 싶은 상황이 생깁니다.
치환은 이 때 사용할 수 있는데
아래 형태로 검색하면 위 내용이 한줄 씩 검색이 됩니다.
([0-9]+)[\/]*(예시[0-9 ]+)[\;]*(Example[0-9]+)
만약 마지막의 내용(Example 관련)만 뽑고 싶다면
바꾸기 에서 \3 을 입력하면 됩니다.
\3은 ( 과 ) 으로 감싸져 있는 3번째 항목 나타내는 말 입니다.
matching 시 개수를 지정하려면
[정규식]{번호}
2. 함수들 만을 남기기 위한
^((?!\([ a-zA-Z0-9\,\_]*\)).)*$
설명: 함수 선언의 필수인 ( 와 ) 를 가지고 있지 않은 줄을 찾기 위한 정규식
3. 특정 캐릭터가 없는 것
(?!\()
\( 가 없는 조건을 만들기 위하여 이 것을 "(?!" 과 ")" 를 감싼다.
?! 의 의미 ? 의 의미 ! 의 의미를 따로 알아야 한다.
4. 특정 캐릭터로 끝나는 것 (Link)
^.*(?<!to)$
5. 최소 몇개의 캐릭터가 있어야 하는 것
([0-9\:]{1,9})( )([0-9\:]{1,9}) ([A-Za-z\_0-9\,\?]*)
보통 * 만 쓰면 없을때도 있기 때문에{1, 9} 처럼 최소 1개 에서 9개 까지 를 명시해 주면 직관적으로 이해할 수 있다.
6. Visual Studio 에서 특정 함수를 print 하려고 할때
찾을 문자열: ([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*cv[a-zA-Z0-9]*\([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*;)
변경할 문자열: \1\n\#ifdef _DEBUG\n_cprintf\(\"\1\"\);\n\#endif
추가: \" 에 대한 고려
5. 최소 몇개의 캐릭터가 있어야 하는 것
([0-9\:]{1,9})( )([0-9\:]{1,9}) ([A-Za-z\_0-9\,\?]*)
보통 * 만 쓰면 없을때도 있기 때문에{1, 9} 처럼 최소 1개 에서 9개 까지 를 명시해 주면 직관적으로 이해할 수 있다.
6. Visual Studio 에서 특정 함수를 print 하려고 할때
찾을 문자열: ([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*cv[a-zA-Z0-9]*\([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*;)
변경할 문자열: \1\n\#ifdef _DEBUG\n_cprintf\(\"\1\"\);\n\#endif
추가: \" 에 대한 고려