티스토리 뷰

CS/JAVA

AntStyle Pattern

djunnni 2022. 6. 17. 13:30
728x90

스프링에서 작업을 하다보면 /static/** , /static/* 처럼 어떤 정규표현식을 사용하고 있는데 알아둘 필요가 있었다.

표현식으로 Ant Pattern을 사용하기에, *, **, ? 에 대해서 알아보자.

 

? 1개의 문자와 매칭
* 0개 이상의 문자와 매칭
** 0개 이상의 디렉토리와 파일 매칭
@Test
public void antStylePatternTest() {
	// ** 예시
	assertThat(true, is(checkAntPattern("/static/**", "/static/a.jpg")));
    assertThat(true, is(checkAntPattern("/static/**", "/static/a/b/c/d/e/f/g/a.jpg")));
    assertThat(true, is(checkAntPattern("/static/**", "/static")));
    assertThat(true, is(checkAntPattern("/static/**", "/static/")));
    
    // * 예시
    assertThat(true, is(checkAntPattern("/static/*", "/static/namkyuProfilePicture.jpg")));
    assertThat(true, is(checkAntPattern("/static*/*", "/static-123/test.jpg")));
    assertThat(false, is(checkAntPattern("/static/*", "/static/a/test.jpg")));
    assertThat(false, is(checkAntPattern("/static*/*", "/static12/a/test.jpg")));
    
    // ? 예시
    assertThat(true, is(checkAntPattern("/static-?/**", "/static-a/a.jpg")));
    assertThat(true, is(checkAntPattern("/static-?/**", "/static-a/b/c/a.jpg")));
    assertThat(true, is(checkAntPattern("/static-?/*", "/static-a/abcd.jpg")));
    assertThat(true, is(checkAntPattern("/static-?/???.jpg", "/static-a/abc.jpg")));
}
// 해당 코드는 아래 참조에서 가져옴.

 

참고

https://lng1982.tistory.com/169

반응형

'CS > JAVA' 카테고리의 다른 글

JVM - JRE - JDK에 대해서 알아보자  (0) 2022.07.24