본문 바로가기

Java

이클립스 문자열 검색시 검색 문자열에 줄내림 또는 공백문자열이 포함된 경우 검색방법

예를들어 USER_TABLE 이라는 테이블의 INSERT 문을 모두 검색하고자 할때
이클립스 검색창에 검색어를 INSERT INTO USER_TABLE 으로 검색하면 될것이다.
하지만 INTO 와 USER_TABLE 사이에 공백이 있거나 줄내림이 있는 경우는 검색되지 않았다.

(쿼리에 공백과 줄내림을 남발한경우ㅡㅡ;;)

이때 공백과 줄내림을 포함하여 검색하는 방법이다.
예로 아래의 4가지 파일을 생성하였다.

query1.sql 기본적인 INSERT QUERY

query2.sql 검색하고자 하는 문자열 사이에 공백문자열 N개 존재
query3.sql 검색하고자 하는 문자열 사이에 줄내림과 공백문자열 N개 존재
query4.sql 검색하고자 하는 테이블만 검색이 되는지 확인하기 위해 다른 테이블 INSERT QUERY

 


찾는 방법
query1.sql 파일을 찾는방법
기본적인 검색이므로 INSERT INTO USER_TABLE 문자열로 검색

 

query2.sql 을 찾는방법 - 찾는 문자열 사이에 n 개의 공백문자포함 
INSERT INTO(\s*)USER_TABLE

N개의 공백문자 포함이므로 query1, 2, 3 모두 검색된다.

query3.sql 파일을 찾는방법 - 찾는 문자열 사이에 줄내림 + n 개의 공백문자포함(query4는 제외되어야 함) 
INSERT INTO\R(\s*)USER_TABLE

줄내림 포함된 query3 파일만 검색됨. 테이블 명이 다른 query4는 검색되지 않았다.

Tip 
이클립스 Search > File 창에서 File Search 탭의 Regular expression에 체크 후 창을 닫은 후 
소스상에서 특수문자열을 드래그하고 다시 Search 창을 열면 드래그한 문자열이 Regular expression 으로 매칭되어 있어 편리하다. 

줄내림 
\R 

특수문자 
\후에 특수문자 

공백포함(0~N) 
(\s*) 

푸념.. 
프로그램을 개발하다보면 일괄적으로 파일을 찾아 수정을 해야하는 경우가 종종 생긴다. 
그럴때 특정 문자열로 검색을 하게되는데, 간혹 띄워쓰기나 줄바꿈을 마구마구 집어넣어 개발을 해놓는 개발자들이 있다. 
심하면 의미없는 탭이나 공백 또는 줄바꿈이 몇십줄 이나 되있고 다른 소스에서 전혀 소스와 다른 주석까지 복사하여 가져오는 경우를 보게 될 때가있다. 
(주석으로 욕이 써있는 경우도 목격함;;) 

모든 소스의 품질이 쿼리티 있다면 좋겠지만, 그건 개발자의 실력이 있어야만 가능하다. 
하지만 소스를 convention에 맞게 개발하는 것은 개발에 대한 마음가짐이며, 전세계 개발자들 끼리의 약속이다. 
나도 개발을 잘 못하는 개발자이지만 
현재 나와 같이 개발하는 개발자들이 소스 한줄 한줄 최선을 다해 개발을 해 나가고, 꾸준한 리팩토링을 통해 보다나은 실력으로 발전해 나갔으면 하는 바램이다.