정규표현식에 관한 클래스이다.
이 함수들을 이용해 이미지 uri가 요청되었을때, 썸네일을 파일명을 만들어보자.
아래는 잘 사용되는 함수들이다.
Pattern
static Pattern compile(String regex) | 주어진 정규식을 갖는 패턴을 생성 |
Matcher matcher(CharSequence input) | 패턴에 매칭할 문자열을 입력해 Matcher를 생성 |
Matcher
boolean find() | 패턴이 일치하는 다음 문자열을 찾는다 다음 문자열이 있다면 true |
String group(int group) | 매칭되는 문자열 중 group번째 그룹의 문자열 반환 0은 그룹의 전체 패턴을 의미 group(0) = group() |
더 많은 메서드를 확인하려면
https://girawhale.tistory.com/77
[Java] Pattern, Matcher Class 사용법과 메소드 정리
자바에서는 정규식을 활용해 문자열을 검증, 탐색을 돕는 Pattern, Matcher 클래스를 제공해준다. 다음에도 쉽게 활용할 수 있도록 정리하려고 한다. 👨🏫 클래스 분석 Pattern 정규 표현식이 컴파
girawhale.tistory.com
이미지 uri가 요청되었을때, 썸네일을 파일명을 만들어보자.
Pattern pattern = Pattern.compile("<img src=\"([^\"]+)"); //"나 \ 가 없는 src 친구 (소스 uri 그대로임)
Matcher matcher = pattern.matcher(dto.getContent()); //매칭되는지
String previewImageSrc = null; //
while (matcher.find()) {
if(matcher.group(1).startsWith("http://192.168.151.35")) { //소스코드가 여기서 왔다면
previewImageSrc = matcher.group(1); //그친구의 이미지는 previeImage가 되는데, TODO: 이미지가 여러개일때? 확인해보기
break;
}
}
if(previewImageSrc != null && previewImageSrc.contains("/")){ // 중간에 슬래시가 있다 ->
int index = previewImageSrc.lastIndexOf("/");
previewImageSrc = "thumb_" + previewImageSrc.substring(index + 1);
}
.compile 함수에 왜 ( ) 가 있는지 몰랐다 . matcher의 그룹명을 위함이었다.
참고:
https://enterkey.tistory.com/353
[JAVA] 정규표현식, Matcher 메서드 사용방법과 그룹 개념이해
Matcher 클래스 메서드들 find() : 패턴이 일치하는 경우 true를 반환하고, 그 위치로 이동(여러개가 매칭되는 경우 반복 실행가능) find(int start) : start위치 이후부터 매칭검색을 수행 start() : 매칭되는
enterkey.tistory.com
그 후 lastIndexOf 함수를 사용해 문자열을 쪼개준다.
참고 :
https://codechacha.com/ko/java-string-indexof-lastindexof-java/
Java - indexOf(), lastIndexOf()으로 문자열의 위치 찾기
자바 String의 indexOf()와 lastIndexOf()의 사용 방법에 대해서 정리하였습니다. indexOf와 lastIndexOf는 String에서 특정 문자열의 인덱스를 찾는데 사용하는 메소드입니다.
codechacha.com
C++로 코딩테스트를 준비하다가 자바를 통해 문자열을 관리하려니 약간 어색한것같다. 좀더 공부하자!!
'TIL' 카테고리의 다른 글
http 메소드 차이 정리 (0) | 2022.12.26 |
---|---|
@Column (name = " " ) name 대소문자 관리 (0) | 2022.12.26 |
오라클 MERGE문 (0) | 2022.12.16 |
[자바] Execute, ExecuteQuery, ExecuteUpdate 차이점 (0) | 2022.12.16 |
ResultSet (0) | 2022.12.13 |