본문 바로가기
Java/Eclipse

정규식을 이용한 이클립스 File Search

by java개발자 2016. 4. 8.

1.공백 개수를 고려한 이클립스 검색


기대결과:

공백 개수와 상관없이 여러 케이스의 문자열을 찾고 싶다.


public void aaa1() throws ArithmeticException,Exception {
    //공백없는 경우
}
public void aaa2() throws ArithmeticException, Exception {
    //공백 1개
}
public void aaa3() throws ArithmeticException,  Exception {
    //공백 2개
}
public void aaa4() throws ArithmeticException,         Exception {
    //공백 여러개
}


찾을 정규식 : throws(\s*)ArithmeticException,(\s*)Exception(\s*)\{

바꿀 문자열 : throws ArithmeticException, Exception {


이렇게 하면 위의 4가지 모두 찾을 수 있다.


(\s*) 은

공백0개 이상을 의미한다.


2.java 풀패키지경로를 찾을때, 앞의 import 문자열을 포함하지 않은 라인들을 찾을때


기대결과:

각 라인별로 import 문자열이 미포함된 org.test.mytest.AAA 문자열을 찾고 싶다.

검색결과에 없음 > import org.test.mytest.AAA;

검색결과에 있음 > org.test.mytest.AAA a = new org.test.mytest.AAA();


정규식 : ^((?!import).)*org\.test\.mytest\.AAA(.*)$


마침표(.)는 정규식에서 특수기호로 인식되므로, 유효한 문자로 인식하기 위해서 \. 를 사용한다.



3.결과내 검색 기능 이용


기대결과:

파일 전체로 보았을때(전체 라인)

AAA 는 포함하고,

org.test.mytest.AAA 는 포함하지 않는 파일들을 각각 찾을때(중복 제거)

> 주로 jsp에서 import를 빠뜨린 경우 찾는데 유용하다.

> java에서는 이런 케이스가 없다.(같은 패키지에서 사용되는 경우를 제외하고는...)


정규식으로는 파일 전체를 기준으로 포함 & 미포함 조건을 둘다 만족 할 수 없다. (정말 불가능한지... 능력부족인지는 모르겠다....)


그래서 이클립스에서 제공하는 결과내 검색을 이용하면 된다.


첫번째 검색 조건 : AAA

두번째 검색 조건(정규식) : (?s)\A((?!org\.test\.mytest\.AAA).)*\Z



1.첫번째 검색



2.검색결과 - 기본 트리형태


3.기본 트리형태에서 모든 파일을 선택해야 한다. 파일이 많을 경우 마우스로 하나하나 선택하기에는 무리가 있으므로

아래와 같이 Show as List를 선택하면, 파일 리스트로 나오기 때문에 전체선택만 하면 된다.




4. 첫번째 검색결과 파일들을 전체 선택 후에

다시 파일 찾기!!

해당 정규식 문자열 입력

check Regular expression

check Selected resources (이것이 결과내 검색과 같은 효과를 나타낼 수 있다.)




'Java > Eclipse' 카테고리의 다른 글

eclipse 기본 세팅  (0) 2021.11.15
maven build bug  (0) 2018.05.06
eclipse 기본 세팅  (0) 2016.12.18
이클립스 단축키 만들기  (0) 2016.04.08
이클립스 플러그인 작성1  (0) 2016.04.08